내 마음대로 공간

728x90
반응형

메시지 큐(Message Queue) 비교

 

1. 메시지 큐 개념

메시지 지향 미들웨어(Message Qriented Middleware:MOM)은 비동기 메시지를 사용하는 다른 응용프로그램 사이에서 데이터 송수신을 의미

 

2. 메시지 큐 장점

- 비동기(Asynchronous): Queue에 넣기 때문에 나중에 처리 가능

- 비동조(Decoupling): 애플리케이션과 분리 가능

- 탄력성(Resilience): 일부가 실패 시 전체에 영향을 받지 않음

- 과잉(Redundancy): 실패할 경우 재실행 가능

- 보증(Guarantees): 작업이 처리된걸 확인할 수 있음

- 확장성(Scalable): 다수의 프로세스들이 큐에 메시지를 보낼 수 있음

.

Message Queueing은 대용량 데이터를 처리하기 위한 배치 작업이나, 채팅 서비스, 비동기 데이터를 처리할 때 메세지 브로커를 두어서 필요한 프로그램에 작업을 분산시키는 방법을 사용

 

3. 메시지 큐 사용처

- 다른 곳의 API로부터 데이터 송수신이 가능

- 다양한 애플리케이션에서 비동기 통신을 할 수 있음

- 이메일 발송 및 문서 업로드가 가능

- 많은 양의 프로세스들을 처리할 수 있음

 

4. 오픈 소스 메시지 큐

 

4.1 RabbitMQ

특징

- AMQP(Advanced Message Queue Protocol) 프로토콜 구현

- Mnesia 사용

- 얼랭 기반으로 높은 신뢰성과 분산 어플리케이션 구축 가능.

- 뛰어난 범용성을 가지고 있음.

- 기본적으로 클러스터링 지원. 추가로 좀 더 높은 트래픽을 처리하기 위해 셔블, 페더레이션 플러그인 제공.

- 무료 오픈 소스 제공

장점

- 실시간 모니터링 관리 용이

- 다양한 언어 지원

- 클러스터링 가능

단점

-  Windows OS , Erlang, OpenSSL 설치필요

 

4.2 ZeroMQ

특징

- 메시지 큐라기보다는 소켓과 비슷한 개념

- 비동기 통신, queue를 다이나믹하게 생성

- inproc, ipc, tcp, pgm, epgm 등 다양한 전송 매체 사용 가능

- 다양한 언어를 지원

- 여러 패턴을 통해서 가용성, 신뢰성, 안전성, 확장성 등을 원하는 대로 구현 가능

- in-memory message buffer만 제공하므로 영속성은 없음

장점

- 속도가 빠르고 가벼움

- Broker가 필요 없음

- 교통수단을 가리지 않고 사용 가능

단점

- 메시지 내구성이 없음

- 신뢰성이 다소 떨어짐

 

 

4.3 MSMQ

- .NET에서 제공하는 메시지 큐

    - 큐 관리가 편리하다.

    장점

   - GUI에서 큐 추가 삭제 등 관리할 수 있다.

   - 다양한 기능이 제공된다.

   단점

   - 속도가 상대적으로 느리다.

  

5. 오픈소스 메시지 큐 비교

5.1 메시지 큐 비교

 

RabbitMQ

ZeroMQ

MSMQ

성능

보통(상대적)

빠름(상대적)

느림(상대적)

WinOS

O

O

O

환경구성

C++, C#

C++, C#

C++, C#

Server 설치

Erlang19, RabbitServer 3.64

X

MSMQWindows 4.0 기능 설정 설치

Client 설치

RabbitMQ.Client 3.5

ZeroMQ 4.1.0.31

MSMQWindows 4.0 기능 설정 설치

프로토콜

AMQT

없음(TCP)

O

모니터링(GUI)

O

X

O

큐 추가/삭제

O

X

O

멀티캐스팅

O

O

O

내구성(저장방식)

O 동기화,자동복원

X

O

유료여부

무료

무료

무료

메시지 추가/삭제

X

X

O

 

5.1.1 메시지 큐 속도 비교

1K 메시지 초당 전송 개수(실험환경 Windows Vista)

 

5. 2 설치 방법

5.2.1 ZeroMQ 4.1.0.31 설치

홈페이지 : http://kr.zeromq.org/

설치

1.     생성된 프로젝트 VisualStudio 2015 메뉴바프로젝트-Nuget패키지 관리 선택

2.     ZeroMq 검색후 사양에 맞춰서 설치

샘플코드

1.     Server : http://zguide.zeromq.org/cs:hwserver

2.     Client : http://zguide.zeromq.org/cs:hwclient

 

5.2.2   RabbitMQ 3.64 설치(GUI 제공)

홈페이지 : https://www.rabbitmq.com/

설치

1.     Erlang 19 다운로드 및 설치

http://www.erlang.org/download.html 에서 windows용 파일을 받아 설치하기

2.     rabbitMQ 3.64 windows 버전 다운로드 및 설치

http://www.rabbitmq.com/download.html 에서 installer 버전을 받아 설치

3. plugins 설치

명령 프롬프트에서 c:/Program Files/RabbitMQ Server/rabbitmq_server-x.x.x/sbin 으로 이동후 rabbitmq-plugins enable rabbitmq_management 커맨드 실행

 

 

4. RabbitMQ 서비스 재시작

             윈도우키 -> 서비스 선택 후 RabbitMQ 재시작

5.  http://localhost:15672 로 접속하여 guest/guest 로 접속하여  관리UI 확인

6. 생성된 프로젝트 VisualStudio 2015 메뉴바프로젝트-Nuget패키지 관리 선택

7.     RabiitteMq 검색후 RabbitMq Client 사양에 맞춰서 설치

샘플 코드

1.     https://www.rabbitmq.com/tutorials/tutorial-one-python.html

5.2.3 MSMQ 4.0 설치

홈페이지 : https://docs.microsoft.com/ko-kr/dotnet/framework/wcf/samples/installing-message-queuing-msmq

설치

1.     DotNetFrameWork 4.0 이상 설치

(https://www.microsoft.com/en-in/download/details.aspx?id=17718)

2.     시작버튼 > 제어판 > 프로그램 및 기능 > Windows 기능사용 / 사용안함

3.     트리 목록 중에서 Microsoft Message Queue(MSMQ) Server 항목 선택 후 확인 버튼

4.     컴퓨터 다시 시작 메시지 나타나면 클릭 확인 설치 완료

 

GUI 관리 창

시작버튼 > 제어판 > 관리도구 > 컴퓨터 관리 > 서비스 및 응용프로그램 > 메시지 큐

샘플 코드

1.     https://www.codeproject.com/Articles/5830/Using-MSMQ-from-C

 

 

 

 

 

 

MSMQ GUI 도구

반응형

'프로그래밍 > Skill' 카테고리의 다른 글

컴퓨터 사용중인 IP/Port 확인, Port 해제  (0) 2022.05.31
메시지 큐  (1) 2021.03.30
RabbitMQ 설치 방법  (0) 2021.02.26
메시지 큐 종류(Message Queue / MQ)  (0) 2021.02.16

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading