Message Queue 비교 분석

Middleware 비교

Purpose

RabbitMQ와 ActiveMQ를 비교하여 적합한 미들웨어를 선택한다.

Desired Specification

  • TOPIC/QUEUE 방식 지원
  • RPC 방식 지원
  • JMS 또는 AMQP 지원
  • MQTT 지원(모바일)
  • Embedded Broker 방식 지원
  • 모니터링 기능
  • Publisher Flow-Control 기능 지원
  • Broker Clustering 기능 지원

지원 여부

항목 RabbitMQ ActiveMQ
TOPIC/QUEUE 방식 O O
RPC 방식 O O
JMS 또는 AMQP O O
Binding 기능 O X
MQTT O O
Embedded Broker X O
모니터링 Very Good Bad
웹컨트롤 Very Good Bad
Publisher Flow-Control O O(설정시)
Broker Clustering O O
Installation 윈도우 설치시 OpenSSL, Erlang 필요 Java Wrapper 사용

Conclusion

RabbitMQ

최대 장점은 Regular Expression을 사용한 다수의 Binding Mechanism을 제공한다는 것이다. 이는 Hyerarchical Topic을 구현하여 Publisher 쪽에서 쉽게 메시지를 publish할 수 있도록 해준다. 또는 모니터링/관리 웹페이지가 있어서 실시간 모니터링 및 관리가 용이하다. 그러나 가장 큰 제약은 소프트웨어가 윈도우즈에 설치되야 하는 상황이라는 것이다. 그렇기 때문에 설치 과정에서 Erlang 및 OpenSSL을 추가적으로 설치하고 관리하는데 크게 부담이 되는 상황이다.

ActiveMQ

장점은 Embedded Broker 기능이다. 현 상황에서 lite, professional, enterprise 모델이 나누어져 있기 때문에 lite 버전에서는 유용하게 쓰일 수 있는 기능이다. 그리고 ActiveMQ 자체가 JAVA 기반이기 때문에 메인 어플리케이션의 JDK를 고용으로 쓸 경우 관리 부담이 크게 줄어든다. 단점이라고 하면 모니터링/관리툴이 전무한 편이라는 것이다. 또한 Virtual Destination을 사용하여 Hierarchical Topic을 구현하는데는 한계가 있다는 것이다. ActiveMQ의 Binding 기능의 경우에는 단일 Queue에 원하는 수만큼 바인팅 가능하지만, VD의 경우 일일이 토픽을 구독하는 형태로 관리해야 한다.

선택 기준

윈도우 설치의 문제점보다 Hierarchycal Topic 기능을 이용한 이득이 클 경우 RabbitMQ가 적합하다. 그러나 Routing, Management 기능 등 MQ의 기능을 어플리케이션으로 옮기고, 경량으로 사용하려는 경우에는 ActiveMQ가 적합해보인다.

comments powered by Disqus