티스토리 뷰

기술

오픈소스 Message Queue 솔루션

카니 Kani's 2018. 7. 10. 18:02

오픈소스 Message Queue 솔루션





MQ에대한 구글 트렌드 검색 순위를.. 생각나는대로 비교 해보니..


1위 Kafka

2위 RabbitMQ

3위 ActiveMQ


 


1,2위를 놓고보면..


1.  Apache Kafka(https://kafka.apache.org)

대용량의 실시간 로그 처리에 특화되어 설계된 메시징 시스템으로써 기존 범용 메시징 시스템대비 TPS가 매우 우수함

(단 특화된 시스템이기 때문에 범용 메시징 시스템에서 제공하는 다양한 기능들은 제공되지 않는다.)

분산 시스템을 기본으로 설계되었기 때문에, 기존 메시징 시스템에 비해 분산 및 복제 구성을 손쉽게 가능

AMQP 프로토콜이나 JMS API를 사용하지 않고 단순한 메시지 헤더를 지닌 TCP기반의 프로토콜을 사용하여 프로토콜에 의한 오버헤드를 감소.

Producer가 broker에게 다수의 메시지를 전송할 때 각 메시지를 개별적으로 전송해야하는 기존 메시징 시스템과는 달리, 다수의 메시지를 batch형태로 broker에게 한 번에 전달할 수 있어 TCP/IP 라운드트립 횟수를 줄일 수 있다.

파일 시스템에 메시지를 저장하기 때문에 별도의 설정을 하지 않아도 데이터의 영속성(durability)이 보장된다.

메시지를 기본적으로 메모리에 저장하는 기존 메시징 시스템과는 달리 메시지를 파일 시스템에 저장한다.


2.  Rabbit MQ (http://www.rabbitmq.com)

AMPQ (Advanced Message Queuing Protocol) 계열

신뢰성 – 안정성과 성능을 충족할 수 있도록 다양한 기능 제공

유연한 라우팅 – Message Queue가 도착하기 전에 라우팅 되며 플러그인을 통해 더 복잡한 라우팅 가능

클러스터링 – 로컬네트워크에 있는 여러 RabbitMQ 서버를 논리적으로 클러스터링 할 수 있고 논리적인 브로커도 가능 

관리 UI가 있어 편하게 관리 가능

거의 모든 언어와 운영체제 지원

상업적 지원



Kafka의 인기몰이 중 하나는 메시징 전송시에 헤더의 크기가 작아 오버헤드를 감소시키며

기존의 메시징 시스템에서는 broker가 consumer에게 메시지를 push해 주는 방식인데 반해, Kafka는 consumer가 broker로부터 직접 메시지를 가지고 가는 pull 방식으로 동작한다.

따라서 consumer는 자신의 처리능력만큼의 메시지만 broker로부터 가져오기 때문에 최적의 성능을 낼 수 있다. 


Spring에서의 지원은?

Spring에서는 Spring AMQP 가 서브프로젝트로 존재 하며 기본 예제는 RabbitMQ로 되어 있음.


https://projects.spring.io/spring-amqp/

https://spring.io/guides/gs/messaging-rabbitmq/

https://docs.spring.io/spring-amqp/reference/htmlsingle/

AMQP는 아니지만 빠른 속도를 내세우며 엄청난 인기몰이를 하는 Kafka가 있는데 Spring 서브프로젝트 Spring Kafka도 있어서 빠른 메시징 큐를 사용시에 활용 가능.


http://projects.spring.io/spring-kafka/

https://docs.spring.io/spring-kafka/reference/htmlsingle/

'기술' 카테고리의 다른 글

OSI 7 Layer - OSI 7계층  (0) 2018.07.11
가상화의 종류  (0) 2018.07.10
클라우드 시스템  (0) 2018.07.10
오픈소스 Message Queue 솔루션  (0) 2018.07.10
오픈소스 API GateWay 솔루션  (0) 2018.07.10
MSA(MicroService Architecture)의 특징  (0) 2018.07.10
댓글
댓글쓰기 폼
공지사항
Total
26,925
Today
0
Yesterday
32
링크
«   2020/08   »
            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          
글 보관함