AOP, MDC, Kafka Interceptor를 활용한 인터페이스 이력 관리 시스템 구축 경험 공유!

by DD
1년 전
조회수 4

AOPMDC를 활용하여 인터페이스 이력 관리 시스템을 구축함

Spring Cloud SleuthKafka Interceptor를 통해 분산 환경에서의 추적 ID 관리

호출 스택 관리, ConcurrentHashMap 사용, 메모리 누수 방지 노력

AOP와 데코레이터 패턴을 활용한 시스템 아키텍처

AOP를 사용하여 인터페이스 호출 전후에 로깅, 시간 측정 등의 부가 기능을 추가했다. Template Method Pattern을 통해 Provider를 유연하게 확장하고, Decorator PatternChain of Responsibility Pattern으로 호출 스택을 관리했다. 따라서 시스템 전반의 관심사 분리유지보수성 향상을 달성했다.

MDC, Spring Cloud Sleuth, Kafka Interceptor를 이용한 추적 ID 관리

MDC를 사용하여 스레드별 메타 정보를 관리하고, Spring Cloud Sleuth로 MSA 환경에서 추적 ID를 전파했다. Kafka Interceptor를 통해 Kafka 메시지 헤더에 추적 ID를 추가하여, 이벤트 기반 시스템에서도 추적 기능을 구현했다. 결과적으로, 분산 환경에서 문제 해결 시간 단축을 이끌었다.

호출 스택 관리와 메모리 누수 방지 전략

다양한 시도를 통해 메모리 누수 문제를 해결했다. ConcurrentHashMap을 사용하여 호출 스택 정보를 안전하게 관리하고, BeanPostProcessorTaskDecorator를 활용하여 스레드 간 MDC 컨텍스트를 전파했다. 따라서, 안정적인 시스템 운영을 위한 기반을 마련했다.

AOP와 MDC로 구현하는 보급형 APM - 인터페이스 이력 관리부터 호출 추적까지

댓글 0

첫 번째 댓글을 남겨보세요!