rabbitmq(7)
-
Spring AMQP
Spring Boot에서 Spring AMQP 를 이용하여서 Producer와 Consumer를 구현해 보도록 하겠다. 전체적인 프로젝트소스는 아래 사이트에서 다운받으시면 됩니다. 소스: https://github.com/roopy1210/springboot-mvc-rabbitmq/tree/master/springboot-mvc-rabbitmq 프로젝트 설정 메이븐 모듈 프로젝트로 설정한다. 프로젝트 구조는 아래와 같다. PRODUCER Exchage Type과 Queue 설정을 위한 환경설정 클래스인 RabbitMQConfig.java 프로그램을 작성한다. package com.roopy.producer.config; import org.springframework.amqp.core.Binding; i..
2020.04.19 -
Topic
Exchanges-Topics topic은 routing pattern과 routing key와 routing pattern 사이의 와일드카드 매치를 기본으로 메세지를 보내게 된다. Senario 1 모든 메세지를 수신 하기 원하는 경우 Exchage: topics Queue1: Temp Queue Routing Pattern: # Senario 2 특정 개발팀만 메세지를 수신 하기 원하는 경우 Exchage: topics Queue1: Temp Queue Routing Pattern: dev.team.* Senario 3 특정 디자인팀만 메세지를 수신 하기 원하는 경우 Exchage: topics Queue1: Temp Queue Routing Pattern: developer.* PRODUCER 메세..
2020.04.19 -
Routing
Exchanges-Direct 앞선 예제에서는 메세지를 Queue로 바로 보내고 Consumer 입장에서는 메세지를 구독하는 형태 였다. 이번 예제에서는 Queue로 메세지를 바로 보내는 것이 아니라 Exchange로 메세지를 전달하고 Exchange 에서는 받은 메세지를 처음에 언급한 4가지 Exchange Type에 의해서 Queue로 Routing 처리 하게 된다. 그 유형중 Direct에 대해 알아볼려고 한다. 위의 그림을 이해하면 아래 소스를 이해하는데 도움이 될것이다. 1. Producer는 Exchage 이름은 "direct_logs"로 하고 Type은 "direct"으로 해서 Exchange를 생성한다. 2. direct exchage "direct_logs" 는 두개의 Queue에 Bin..
2020.04.19 -
Publish/Subscribe
Exchanges-fanout 앞선 예제에서는 메세지를 Queue로 바로 보내고 Consumer 입장에서는 메세지를 구독하는 형태 였다. 이번 예제에서는 Queue로 메세지를 바로 보내는 것이 아니라 Exchange로 메세지를 전달하고 Exchange 에서는 받은 메세지를 처음에 언급한 4가지 Exchange Type에 의해서 Queue로 Routing 처리 하게 된다. 그 유형중 fanout에 대해 알아볼려고 한다. 위의 그림을 이해하면 아래 소스를 이해하는데 도움이 될것이다. 1. Producer는 Exchange 이름을 "logs"로 하고 Type은 "fanout"으로 해서 Exchange를 생성한다. 2. Producer는 생성된 Exchange 이름에 메세지를 전송한다. 3. Consumer는 ..
2020.04.19 -
Work Queues
Hello World! 에서는 지정한 큐로 메세지를 주고 받는 프로그램을 작성해았습니다. 이번 예제에서는 시간이 많이 걸리는 작업을 여러작업에 배포하는 예제를 알아보자. Work Queues 의 가장 핵심적인 개념은 Round-robin 분배 방식이다. 리소스를 많이 사용하는 작업을 즉시 수행하지 않고 완료될때까지 기다려야 한다. 대신에 작업이 나중에 수행 될수 있도록 예약해야 합니다. 작업을 메시지로 캡슐화하여 대기열로 보냅니다. 백그라운드에서 실행중인 작업 프로세스는 작업을 Pop 하고 작업을 실행합니다. 여러 Worker를 실행하면 작업은 공유 될것입니다. PRODUCER 메세지 발송을 위한 NewTask.java 프로그램을 작성한다. package com.rabbitmq.tutorials.chap..
2020.04.19 -
Hello World
RabbitMQ는 메세지 브로커 이다. 쉽게 이해하기 위해서 우체국으로 생각할 수 있다. 원하는 사람에게 메세지를 전달하기 위해 메세지를 작성하고 우체국 또는 우편함에 우편물을 넣으면 우리가 원하는 사람에게 메세지가 전달 될 것이다. 아래 그림은 우리가 작성 할 예제 프로그램에 대한 흐름이다. PRODCUER는 메세지를 보내는 사람이 될 것이고 우리가 전달할 메세지는 Broker인 RabbitMQ의 Queue에 메세지가 저장되고 Consumer에게 메세지가 전달 될 것이다. 프로젝트생성 기본적인 자바 프로젝트 생성한다. 프로젝트 구조는 아래와 같다. PRODUCER 메세지를 전송하기 위한 Send.java 프로그램을 작성한다. package com.rabbitmq.tutorials.chap01; impo..
2020.04.19