Camel 애플리케이션이 프로덕션에서 실행 중일 때 각 라우트의 상태, 처리량, 오류율을 실시간으로 파악해야 합니다. 문제가 발생했을 때 빠르게 원인을 찾고, 필요하면 라우트를 일시 정지하거나 재시작해야 합니다.
Camel은 기본적으로 JMX를 통해 관리 인터페이스를 노출합니다. JConsole이나 VisualVM으로 연결하면 라우트 통계를 볼 수 있습니다.
# application.properties에서 JMX 활성화
camel.springboot.jmx-enabled=true
// 코드에서 JMX로 라우트 통계 조회
ManagedCamelContext managed = context.getCamelContextExtension()
.getContextPlugin(ManagedCamelContext.class);
ManagedRouteMBean routeMBean = managed.getManagedRoute("order-processor", ManagedRouteMBean.class);
System.out.println("처리 건수: " + routeMBean.getExchangesTotal());
System.out.println("실패 건수: " + routeMBean.getExchangesFailed());
System.out.println("평균 처리 시간: " + routeMBean.getMeanProcessingTime() + "ms"); Hawtio는 JMX 기반의 웹 관리 콘솔입니다. 브라우저에서 라우트 다이어그램을 보고, 메시지 통계를 확인하고, 라우트를 시작/중지할 수 있습니다.
<dependency>
<groupId>io.hawt</groupId>
<artifactId>hawtio-springboot</artifactId>
<version>2.17.6</version>
</dependency> 의존성 추가 후 http://localhost:8080/hawtio에 접속하면 Camel 탭에서 라우트 목록, 엔드포인트, 메시지 통계를 확인할 수 있습니다.
운영 중에 특정 라우트를 코드 변경 없이 일시 정지하거나 재시작할 수 있습니다.
// 라우트 일시 정지 (메시지 소비 중단)
context.suspendRoute("order-processor");
// 라우트 재시작
context.resumeRoute("order-processor");
// 라우트 완전 중지
context.stopRoute("order-processor");
// 새 라우트 동적 추가
context.addRoutes(new RouteBuilder() {
@Override
public void configure() throws Exception {
from("timer:new?period=1000").log("새 라우트");
}
}); // 에러율이 임계값 초과 시 알림
@Component
public class RouteMonitor {
@Scheduled(fixedDelay = 60000)
public void checkRouteHealth() {
ManagedRouteMBean routeMBean = getManagedRoute("order-processor");
double errorRate = (double) routeMBean.getExchangesFailed()
/ routeMBean.getExchangesTotal() * 100;
if (errorRate > 5.0) {
alertService.send("order-processor 에러율 " + errorRate + "% 초과");
}
}
} 2025년 Apache Camel의 최신 트렌드를 분석합니다. AI/LLM 통합 컴포넌트, 서버리스 배포, Camel K 진화, WebAssembly…
Camel in Action을 완독한 후 Apache Camel의 전체 그림을 다시 정리합니다. 핵심 철학, 학습 경로,…
Apache Camel 2.x에서 3.x, 4.x로 마이그레이션하는 단계별 가이드입니다. 주요 API 변경사항, 제거된 컴포넌트, 자동화 도구…
Apache Camel 라우트에서 발생하는 문제를 디버깅하고 해결하는 실전 기법을 설명합니다. 로그 분석, breakpoint 디버깅, Tracer,…
Apache Camel을 프로젝트에 도입하기 전 알아야 할 핵심 사항을 정리합니다. 학습 곡선, 도입 비용, 적합한…
엔터프라이즈 통합 패턴(EIP) 20가지를 Apache Camel 코드와 함께 한 번에 정리합니다. 메시징 채널, 메시지 라우팅,…