차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

message_queue_제품별_특징 [2018/09/11 10:30] (현재)
koov 만듦
줄 1: 줄 1:
 +====== Message Queue 제품별 특징 ======
 +
 +원글 출처 : https://​shortstories.gitbooks.io/​studybook/​content/​message_queue_c815_b9ac.html
 +
 +===== Apache Kafka =====
 +http://​kafka.apache.org/​
 +
 +==== 특징 ====
 +{{:​swarchitecture:​kafka-1.png|}}
 +
 +  * pub-sub 구조에 특화된 분산 메세지 큐. 
 +  * 범용 메세지 큐(RabbitMQ,​ ActiveMQ)에 비하여 성능적 우위를 가지고 있음.  ​
 +
 +{{:​swarchitecture:​kafka-2.png|}}
 +
 +{{:​swarchitecture:​kafka-3.png|}}
 +
 +  * broker들이 클러스터로 구성되어 동작하는 등 각 컴포넌트의 분산 및 복제 구성이 쉬움. ​
 +
 +{{:​swarchitecture:​kafka-4.png|}}
 +
 +  * 단순한 TCP기반 프로토콜 사용으로 오버헤드 감소
 +  * 다수의 메세지를 batch 형태로 한번에 publish 하는게 가능하여 TCP/IP 라운드 트립 횟수를 줄일 수 있음
 +  * 메세지를 파일 시스템에 저장하여 영속성 보장. 특정 과정에서 에러가 발생했을 시 다시 rewind 하는 것이 가능.
 +  * OS의 페이지 캐시를 활용, 메세지를 순차적으로 읽도록 하여 성능 면에서 가능한한 희생을 줄임.
 +  * 커널모드와 유저모드간 불필요한 데이터 복제를 하지 않도록 하는 zero-copy를 이용하여 성능을 높임. ​
 +
 +{{:​swarchitecture:​kafka-5.png|}}
 +
 +  * broker가 push하는 대신 consumer이 자체적으로 pull해서 consume하는 방식으로 consumer 성능을 최대한 활용 가능
 +
 +===== Luxun =====
 +https://​github.com/​bulldog2011/​luxun ​
 +
 +{{:​swarchitecture:​luxun-1.png|}}
 +
 +==== 특징 ====
 +
 +  * Kafka와 전체적으로 유사한 구조.
 +  * BigQueue라는 Memory mapped file 기반 시스템 사용. (성능상 우위를 내는 주요 요인)
 +  * Communictaion layer로 Thrift RPC 사용
 +
 +
 +===== Amazon SQS =====
 +http://​aws.amazon.com/​ko/​documentation/​sqs/​
 +
 +==== 특징 ====
 +  * 메시지크기 256KB 제한 (그 이상은 Amazon S3에 저장됨)
 +  * FIFO 엄격하게 지켜지지 않음. (순서를 엄격하게 지키기 위해선 추가적인 정렬 필요)
 +  * 메세지를 여러 서버에 충분히 중복해서 저장하여 안정성 보장. 메세지가 전달된 다음에 직접 삭제를 하지 않으면 일정 시간 뒤 중복해서 받는 것이 가능함.
 +  * 강력한 보안 및 ACL 지원
 +
 +
 +===== RabbitMQ =====
 +http://​www.rabbitmq.com/​
 +
 +==== 특징 ====
 +
 +  * AMQP(Advanced Message Queue Protocol) 0-9-1 버전 구현
 +  * Mnesia 사용
 +  * 얼랭 기반으로 높은 신뢰성과 분산 어플리케이션 구축 가능.
 +  * Direct Exchange(Point to Point), Topic Exchange(Publish-Subscribe),​ Fanout Exchange(Multicast) 등의 라우팅 규칙 제공
 +  * 뛰어난 범용성을 가지고 있음.
 +  * 기본적으로 클러스터링 지원. 추가로 좀 더 높은 트래픽을 처리하기 위해 셔블, 페더레이션 플러그인 제공.
 +
 +
 +===== ZeroMQ =====
 +http://​zeromq.org/​
 +
 +==== 특징 ====
 +  * 메세지큐라기보다는 소켓과 비슷한 개념으로 생각해볼 수 있음.
 +  * 비동기 통신, queue를 다이나믹하게 생성.
 +  * inproc, ipc, tcp, pgm, epgm등 다양한 전송 매체 사용 가능.
 +  * 다양한 언어를 지원.
 +  * 여러 패턴을 통해서 가용성, 신뢰성, 안정성, 확장성 등을 원하는 대로 구현 가능.
 +  * in-memory message buffer만 제공하므로 영속성은 없음.
 +
  
  • message_queue_제품별_특징.txt
  • 마지막으로 수정됨: 2018/09/11 10:30
  • 저자 koov