16. Spring Cloud Bus

| Spring Cloud Bus

  • 분산 시스템의 노드(Microservice)를 경량 메시지 브로커와 연결
  • 상태 및 구성에 대한 변경 사항을 연결된 노드에게 전달(Broadcast)

WHY

  • config가 변경되면 각 마이크로서비스는 최신 값을 갖고 오기 위해 POST로 http[s]://{microservice host}/actuator/refresh를 해줘야 한다. 물론 이 작업을 자동화할 수도 있겠으나, config server가 각 마이크로서비스의 주소를 모두 관리해야 하니 비효율적입니다.
  • Spring cloud bus는 동적으로 config 변경을 적용하기 위한 MQ(Message Queue) Handler 이다.

HOW

  • MQ(Message Queue)에 Publisher(=config server)와 Subscriber(마이크로서비스)를 등록
  • config 변경 정보를 MQ에 전송(아래 3. Publish Message)
  • 각 마이크로서비스에서 config 동적 반영(5. Reload Config)
  • 분산 시스템의 노드를 경량 메시지 브로커와 연결
  • 상태 및 구성에 대한 변경 사항을 연결된 노드에게 전달(broadcast)
  • RabbitMQ

참고: http://www.linkedin.com/in/incheolJung

참조: https://happycloud-lee.tistory.com/211

참조: http://blog.eomdev.com/springcloud/2019/04/01/Spring-Cloud-Bus.html

1) AMQP (advanced Message Queuing Protocol)

  • 메시지 지향, 큐잉, 라우팅(P2P, Publisher-Subcriber), 신뢰성, 보안
  • Erlang, RabbitMQ에서 사용

2) Kafka 프로젝트

  • Apache Software Foundation이 Scalar 언어로 개발한 오픈 소스 메시지 브로커 프로젝트
  • 분산형 스트리밍 플랫폼
  • 대용량의 데이터를 처리 가능한 메시징 시스템

3) 예시화면

댓글

Designed by JB FACTORY