AOP, MDC, Kafka Interceptor를 활용한 인터페이스 이력 관리 시스템 구축 경험 공유!
by DD
1년 전
조회수 4
AOP와 MDC를 활용하여 인터페이스 이력 관리 시스템을 구축함
Spring Cloud Sleuth와 Kafka Interceptor를 통해 분산 환경에서의 추적 ID 관리
호출 스택 관리, ConcurrentHashMap 사용, 메모리 누수 방지 노력
AOP와 데코레이터 패턴을 활용한 시스템 아키텍처
AOP를 사용하여 인터페이스 호출 전후에 로깅, 시간 측정 등의 부가 기능을 추가했다. Template Method Pattern을 통해 Provider를 유연하게 확장하고, Decorator Pattern과 Chain of Responsibility Pattern으로 호출 스택을 관리했다. 따라서 시스템 전반의 관심사 분리와 유지보수성 향상을 달성했다.
MDC, Spring Cloud Sleuth, Kafka Interceptor를 이용한 추적 ID 관리
MDC를 사용하여 스레드별 메타 정보를 관리하고, Spring Cloud Sleuth로 MSA 환경에서 추적 ID를 전파했다. Kafka Interceptor를 통해 Kafka 메시지 헤더에 추적 ID를 추가하여, 이벤트 기반 시스템에서도 추적 기능을 구현했다. 결과적으로, 분산 환경에서 문제 해결 시간 단축을 이끌었다.
호출 스택 관리와 메모리 누수 방지 전략
다양한 시도를 통해 메모리 누수 문제를 해결했다. ConcurrentHashMap을 사용하여 호출 스택 정보를 안전하게 관리하고, BeanPostProcessor와 TaskDecorator를 활용하여 스레드 간 MDC 컨텍스트를 전파했다. 따라서, 안정적인 시스템 운영을 위한 기반을 마련했다.
댓글 0
첫 번째 댓글을 남겨보세요!