Spring Cloud Bus (RabbitMQ)

조현재·2023년 2월 3일
0

MSA

목록 보기
16/17

세번째 방법인 AMQP(Advanced Message Queuing Protocol)이라는 메세지 큐잉 프로토콜을 사용하여야한다. 유명한 프로젝트로는 RabbitMQ, Kafka 등이 있지만 대용량 처리나 속도보다는 정확성이 더 중요한 설정이니 RabbitMQ를 사용하여 진행해보려고 한다.

RabbitMQ를 사용하기 위해서는 Erlang 설치을 먼저 설치해야한다.

Erlang 홈페이지
windows installer를 눌러 설치

개인 환경변수를 Path에 넣어주고 RabbitMQ설치하면 된다.

RabbitMQ 홈페이지
window용으로 Chocolatey package 나 Windows Installer 다운

다음 서비스에서 RabbitMQ가 들어가 있는지 확인 후 바로 환경 변수도 등록

마지막으로 Management Plugin을 설치해주면 더 편하게 사용 가능한데
C:\Program Files\RabbitMQ Server\rabbitmq_server-3.11.8\sbin에서
powershell을 열고

rabbitmq-plugins enable rabbitmq_management

웹페이지 접근 가능해짐
로그인 정보 : guest/guest

userservice / gateway / config 가 RabbitMQ의 client역할로서 다 등록을 해줄것이다 RabbitMQ에 변경사항이 생기면 해당하는 변경사항을 AMQP이라는 프로토콜로 받기 위한 클라이언트 역할이라고 보면 된다.

프로젝트 적용

config server

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>

config server에 각 actuator, bus amqp, bootstrap의 의존성을 추가한다.

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>

config application

server:
  port: 8888

spring:
  application:
    name: config-service
  rabbitmq: #rabbitmq 설정 추가
    host: 127.0.0.1
    port: 5672
    username: guest
    password: guest
  cloud:
    config:
      server:
        native:
          search-locations: file://${user.home}/Desktop/Program/0_workspace/0_project/individual/ecommerce
        git:
          uri: file://C:/Users/82107/Desktop/Program/0_workspace/0_project/individual/ecommerce

management: #actuator 설정
  endpoint:
    web:
      exposure:
        include: health, busrefresh

user-service gateway에도 추가

  rabbitmq: #rabbitmq 설정 추가
    host: 127.0.0.1
    port: 5672
    username: guest
    password: guest
    
management: #actuator 설정
  endpoints:
    web:
      exposure:
        include: refresh, health, beans, busrefresh

userservice bootstrap.yml를

spring:
  cloud:
    config:
      uri: http://112.1.1.2:8888
      name: config-service

추가

busrefresh postman으로 post실행하면 http상태코드가 204로 반환되는걸 알 수있다.

profile
내일이 다른

0개의 댓글