티스토리 뷰

 

RabbitMQ 를 깔고 준비를 마쳤으니 예제를 해봅니다.

기본준비 : java 1.8, Spring boot 2.0

부트스트랩은 webjar 방식으로 사용 예정.

 

기본 스프링 boot 세팅은 Spring 사이트에서 지원해주는 Initialize 서비스를 이용해 받기로 합니다.

https://start.spring.io/


출처: http://jieero.tistory.com/31 [서울청년, 제주소년.]

기본준비 : java 1.8, Spring boot 2.0

부트스트랩은 webjar 방식으로 사용 예정.

 

기본 스프링 boot 세팅은 Spring 사이트에서 지원해주는 Initialize 서비스를 이용해 받기로 합니다.

https://start.spring.io/


출처: http://jieero.tistory.com/31 [서울청년, 제주소년.]

기본준비 : java 1.8, Spring boot 2.0, Gradle 구조로 진행이 됩니다.

 

역시나 기본 스프링 boot 세팅은 Spring 사이트에서 지원해주는 Initialize 서비스를 이용해 받기로 합니다.

https://start.spring.io/

 

디펜던시는 Web 과 RabbitMQ를 검색해서 선택해 줍니다.

물론 나중에 필요한 것들은 gradle에서 추가해 주면 됩니다.

 

 

여기서 잠깐 RabbitMQ 기본적인걸 알아보면,

Producer(Sender)가 메세지를 보내면, eXchange에서 해당하는 키에 맞게 큐에 분배를(바인딩 or 라우팅) 하고, 해당 큐에서 Consumer(Receiver)가 메세지를 받습니다.

 

여기사 각 Queue와 라우팅간에는(바인딩) N:M, 여러곳의 큐와 라우팅간에 연결이 가능하다.

쉽게 말해서 우편시스템과 비슷하다. 특정 주소로 편지를 보내면 우체국을 통하여 해당 주소로 배송이 되고, 각 주소는 여러 곳에서 편지를 받을 수 있다. 개념비슷.

바인딩 방식은 기본적으로 3가지가 있는데, 전체 전달, 키 일부분 일치시 전달, 키가 정확히 일치시 전달이 있는데 보통 일부분 일치 방식이 기본적이다.

+ Direct : RoutingKey = eXchange 같을때 전달

+ Topic : RoutingKey과 eXchange 일부 패턴이 같을때 전달

+ Fanout : 전체 전달

 

 

프로젝트 기본 구조입니다.

 

간단하게,

SpringRabbitMqApplication 에서 이니셜라이즈 - application.yml 에서 rabbit 설절값들을 읽어서 RabbitConfigReader에 기록.

시작하면서 RabbitMQ 리스너들을 대기.

UserController 에서 메세지를 받으면 입력된 라우팅 키로 MassageSender 통해서 전달.

 

https://github.com/Jayden-Song/springRabbit

 

 

 

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함