일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- git명령어
- 아펠가모
- sprintboot
- 마드리드
- 스페인
- kopring
- @Component
- HTTP
- Srping AOP
- http상태코드
- 스프링 AOP
- 코프링
- 아펠가모 선릉
- 코틀린 함수
- HTTP #웹기술
- Kotlin
- 바르셀로나
- 400에러
- kotiln
- 스페인 준비물
- 그라나다
- b-tree index
- 본식후기
- 아펠가모선릉
- 세비야
- db index
- 코틀린
- c# scv
- elk
- 관심지향프로그래밍
- Today
- Total
끄적이는 메모장
[.NET Core 2.x] RabbitMQ 연동 본문
순차적으로 처리가 보장되어야 하는 로직이 존재한다면 MQ를 이용하는 것이 좋다
RabbitMQ는 대표적인 MQ 중 하나로서 .NET Core에서 어떻게 연동 되는지를 다루려고 한다.
1. RabbitMQ client 설치하기
> VS Code 터미널로 rabbitmq client를 설치 해 주자.
dotnet add package RabbitMQ.Client --version 5.0.1 |
2. RabbitMQ server 설치하기
> RabbitMQ server를 통해서 메시지를 교환하게 된다.
(다운로드 : https://www.rabbitmq.com/download.html)
> RabbitMQ란
- 서비스 간에 메시지를 전달해주는 시스템
- producers : 메시지를 발송자
- consumers : 매시지 수신자
- producers는 Queue를 통해 consumer에게 메시지를 보내게 된다.
- Queue의 특성상 producer가 보낸 메시지들이 consumer에게 순차적으로 전달이 되기 때문에 순서를 보장해야 하는 서비스에 사용이 된다.
- Queue에 여러 설정을 통해 동기 방식으로 메시지를 처리할 수도 있다.
> RabbitMQ Server 3306 port를 통해 서비스 된다.
3. tutorials
(http://www.rabbitmq.com/tutorials/tutorial-one-dotnet.html)
a. send 부분
using RabbitMQ.Client; { |
> ConnectionFactory를 통해 RabbitMQ server와의 연결 관리를 해준다.
> connection을 맺으면 connectionFactory에서 관리가 된다.
> 다시 connection에서 exchange와 queue를 관리 하기 위한 Channel을 만들고 channel을 통해 메시지를 송수신 한다.
> 해당 예제는 Hello라는 이름을 가진 Queue를 생성하였고 이를 통해 메시지를 publish할 수 있다.
b. receive 부분
using RabbitMQ.Client; |
> receive 부분에서는 send 부분가 동일한 이름을 가진 Queue를 선언 해야만 send 부분에서 보내는 메시지를 받을 수 있게 된다.
> BasicConsumer 에서 어떤 이름을 가진 Queue에 대해서 메시지를 받을 것인지 지정할 수 있다.
위의 예제는 Queue를 통해서 메시지를 주고 받는 예제이다.
더 나아가 exchange를 이용한다면 메시지의 broadcast도 가능하도록 서비스를 구성할 수 있다.
rabbitMQ에서 예제를 친절하게 제공하고 있으므로 참고해서 활용할 수 있을 것이다.
'C, C++, C# > C# ASP.NET' 카테고리의 다른 글
[.NET Core 2.x] Swagger 연동 (0) | 2018.04.06 |
---|---|
[.NET Core 2.x] NoSQL (Couchbase) 연동 (0) | 2018.04.05 |
[.NET Core 2.x] REST API + MySQL (0) | 2018.04.05 |
[.NET Core 2.x] VS Code + MySQL (0) | 2018.04.04 |
[.NET Core 2.x] Visual Studio Code (0) | 2018.04.04 |