Categories: Camel프레임워크

[Camel in Action] 7-1. 마이크로서비스 시대의 Apache Camel – 서비스 통합 아키텍처

마이크로서비스와 통합의 도전

마이크로서비스 아키텍처는 시스템을 작고 독립적인 서비스로 나눕니다. 하지만 서비스가 많아질수록 서비스 간 통신과 통합이 복잡해집니다. Apache Camel은 이런 복잡성을 관리하는 데 탁월한 도구입니다.

Camel이 마이크로서비스에 적합한 이유

전통적인 ESB(Enterprise Service Bus)는 중앙 집중식으로 모든 통합 로직을 처리합니다. 마이크로서비스에서는 이런 중앙화가 오히려 병목이 됩니다. Camel은 각 서비스에 내장(embedded)되어 분산 방식으로 통합을 처리합니다.

  • 경량: 서비스 내부에 포함될 만큼 가볍습니다
  • 다양한 프로토콜: REST, gRPC, 메시지 큐, 이벤트 스트림 모두 지원
  • Spring Boot 통합: 스프링 부트 애플리케이션에 자연스럽게 녹아듦

서비스 디스커버리 패턴

마이크로서비스는 인스턴스가 동적으로 생성/삭제됩니다. Camel은 Consul, Kubernetes, Eureka 등 서비스 디스커버리 시스템과 통합해 동적으로 서비스 주소를 찾을 수 있습니다.

// Kubernetes 서비스 이름으로 자동 라우팅
from("direct:callPayment")
  .to("http4://payment-service/api/pay?bridgeEndpoint=true");

Kubernetes 환경에서는 서비스 이름이 DNS로 자동 해석되므로, IP 주소 대신 서비스 이름을 그대로 사용할 수 있습니다.

Circuit Breaker 패턴 구현

외부 서비스가 느리거나 다운됐을 때 요청이 쌓여 자체 서비스까지 망가지는 것을 막는 것이 Circuit Breaker입니다. Camel 3.x부터 Resilience4j와 통합을 지원합니다.

from("direct:callExternalService")
  .circuitBreaker()
    .to("http4://external-service/api")
  .onFallback()
    .setBody(constant("서비스 일시 중단, 나중에 다시 시도하세요"))
  .end();

Circuit Breaker는 실패 임계값을 초과하면 자동으로 “열려서” 외부 호출을 차단합니다. 일정 시간 후 다시 시도해 성공하면 “닫혀서” 정상 운영됩니다.

이벤트 드리븐 마이크로서비스

REST 호출 대신 이벤트(메시지)로 서비스 간 통신하면 더 느슨한 결합을 달성할 수 있습니다. Camel은 Kafka, RabbitMQ 등 이벤트 스트리밍 플랫폼과 쉽게 연동됩니다.

// 주문 이벤트 발행
from("direct:placeOrder")
  .marshal().json()
  .to("kafka:order-events?brokers=kafka:9092");

// 재고 서비스에서 구독
from("kafka:order-events?brokers=kafka:9092&groupId=inventory")
  .unmarshal().json(OrderEvent.class)
  .to("bean:inventoryService?method=reserve");

zerg96

Recent Posts

유튜브 AI 영상 범람, 진짜 크리에이터는 어떻게 살아남나

유튜브에 AI 자동 생성 영상이 넘쳐납니다. 진짜 크리에이터들은 어떻게 살아남아야 할까요? AI와 경쟁하는 3가지 생존…

59분 ago

코스피 사이드카 이틀 만에 또 발동, 올해만 27번째…5분간 멈추는 건 ‘프로그램 매도’뿐입니다

이틀 전에 사이드카가 걸렸을 때만 해도 "한 번 놀란 장"으로 끝날 줄 알았는데요. 15일 아침…

1시간 ago

코스피 낙폭 7%로 확대, 외국인 1.7조 순매도: 10월 15일 오전 10시 시황

오전 시황 글에 이어 장중 후속 정리입니다. 코스피는 개장 직후 5%대였던 낙폭이 오전 10시 전후에…

5시간 ago

코스피 5.59% 급락 출발, 개장 7분 만에 매도 사이드카: 10월 15일 오전 시황

10월 15일 목요일 아침, 코스피가 전날 종가보다 5.59% 낮은 5,673.01로 출발했습니다. 장 시작 7분 만에…

5시간 ago

삼성 갤럭시 AI, 솔직히 기대 이하였다 — 실망스러운 이유 TOP 5

삼성 갤럭시 AI, 써보니 실망스러웠다. 온디바이스 한계, 지역 제한, 낮은 일상 활용도 등 현실적인 문제점…

6시간 ago

주 52시간제 뒤 제조업·중소기업만 흔들렸다? KDI 미공개 연구가 말한 것과 안 밝힌 것

주 52시간 상한이 기업 성과에 어떤 영향을 줬는지를 다룬 KDI(한국개발연구원) 연구 내용이 10월 14일 국회를…

7시간 ago