Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

Spring Cloud Bus

Spring Cloud Bus

Changed configuration values

  • 서버 재기동
  • Actuator refresh
    • Spring Boot Actuator
      • Application 상태, 모니터링
      • Metric 수집을 위한 Http End point 제공
      • img.png
  • Spring cloud bus 사용
    • 분산 시스템의 노드를 경량 메시지 브로커와 연결
    • 상태 및 구성에 대한 변경 사항을 연결된 노드에게 전달(Broadcast)

Spring Cloud Bus

  • img.png
  • AMQP(Advanced Message Queuing Protocol), 메시지 지향 미들웨어를 위한 개방형 표준 응용 계층 프로토콜
    • 메시지 지향, 큐잉, 라우팅 (P2P, Publisher-Subcriber), 신뢰성, 보안
    • Erlang, RabbitMQ에서 사용
  • Kafka 프로젝트
    • Apache Software Foundation이 Scalar 언어로 개발한 오픈 소스 메시지 브로커 프로젝트
    • 분산형 스트리밍 플랫폼
    • 대용량의 데이터를 처리 가능한 메시징 시스템
  • RabbitMQ VS Kafka
    • RabbitMQ
      • 메시지 브로커
      • 초당 20+ 메시지를 소비자에게 전달
      • 메시지 전달 보장, 시스템 간 메시지 전달
      • 브로커, 소비자 중심
    • Kafka
      • 초당 100k+ 이상의 이벤트 처리
      • Pub/Sub, Topic에 메시지 전달
      • Ack를 기다리지 않고 전달 가능
      • 생산자 중심
    • img.png
    • img.png
  • Actuator bus-refresh Endpoint
    • 분산 시스템의 노드를 경량 메시지 브로커와 연결
    • 상태 및 구성에 대한 변경 사항을 연결된 노드에게 전달(Broadcast)
    • img.png

Rabbit MQ 설치

  • img.png
  • MacOS)
    • $ brew update
    • $ brew install rabbitmq
      • img.png
      • img.png
      • img.png
      • img_1.png
    • $ export PATH=$PATH:/usr/local/sbin
    • $ rabbitmq-server
      • img.png
    • img.png
    • img_1.png

Rabbit MQ 설치 – Windows 10

  • Erlang 설치
    • img.png
    • img.png
    • img.png
    • img_1.png
  • RabbitMQ 설치
    • img.png
    • img_1.png
    • img.png
    • img.png
    • img_1.png
    • img.png
    • img_1.png
    • img_2.png
    • img_3.png
  • Management Plugin 설치
    • img_4.png
    • img_5.png
  • http://127.0.0.1:15672
    • img_6.png
    • img_7.png
    • img_8.png

AMQP 사용

Dependencies 추가

  • Config Server
    • AMQP for Spring Cloud Bus, Actuator
    • img.png
  • Users Microservice, Gateway Service
    • AMQP for Spring Cloud Bus
    • img.png

application.yml 수정

  • Config Server, Users Microservice, Gateway Service
    • img.png
    • img_1.png
    • Spring Cloud 2020.0.0에서 bus-env -> busenv, bus-refresh -> busrefresh

Actuator

  • Stop RabbitMQ server
    • img.png
  • Start RabbitMQ server again
    • img.png

© 2020. All rights reserved.

SIKSIK