세번째 방법인 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로 반환되는걸 알 수있다.