FrameWork/Spring Cloud
Spring Cloud Bus
태윤2
2021. 9. 4. 11:56
Spring Cloud Bus
- 분산 시스템의 노드(MicroService)를 경량 메시지 브로커(RabbitMQ)와 연결
- 상태 및 구성에 대한 변경 사항을 연결된 노드에게 전달(Broadcast)
AMQP(Advanced message Queuing Protocol)
- 메시지 지향 미들웨어를 위한 개방형 표준 응용 계층 프로토콜
- 메시지 지향, 큐잉, 라우팅(P2P, Publisher-Subcriber), 신뢰성, 보안
- Erlang, RabbitMQ에서 사용
Kafka 프로젝트
- Apache Software Foundation이 Scalar 언어로 개발한 오픈 소스 메시지 브로커 프로젝트
- 분산형 스트리밍 플랫폼
- 대용량의 데이터를 처리 가능한 메시징 시스템
RabbitMQ
- 메시지 브로커
- 초당 20+ 메시지를 소비자에게 전달
- 메시지 전달 보장, 시스템 간 메시지 전달
- 브로커, 소비자 중심
Kafka
- 초당 100k+ 이상의 이벤트 처리
- Pub/Sub, Topic에 메시지 전달
- Ack(acknowledge)를 기다리지 않고 전달 가능
- 생산자 중심
Actuator bus-refresh Endpoint
- HTTP POST /busrefresh를 호출
- Spring Cloud Bus와 연결된 어느 서비스든 busrefresh를 하게되면 Spring Cloud Bus와 연결된 다른 서비스도 refresh가 적용됨(gateway, config-server 등등 어디든 상관 X)
RabbitMq 설치
- 환경 변수 추가
- C:\Program Files\erl-24.0
- C:\Program Files\RabbitMQ Server\rabbitmq_server-[verion]\sbin
- windows powershell에 Management Plugin 설치
- rabbitmq-plugins enable rabbitmq_management
- rabbitmq-server
- localhost:15672 접속
- guest/guest로 접속
Config-Service, User-Service, Gateway-Service
- 의존성 추가
- application.yml에 rabbitMq 설정 정보 추가
- actuator/busrefsh 호출 (Method = POST)
- 204 No Content Response Code 발생
- 바뀌는거 확인