ActiveMQ 대 Apollo 대 Kafka
* MQ에 대한 이전 경험이 없으며 일반적으로 JMS 및 메시지 대기열에 대한 지식을 쌓으려고합니다. 그런 식으로 ActiveMQ로 시작해야할지 아니면 그냥 "무시"하고 Apollo를 가르치는 것으로 시작해야할지 궁금합니다. Apollo는 ActiveMQ만큼 기능이 완벽합니까? JMS 2.0을 구현합니까 (ActiveMQ가 1.1에서 멈춘 것을 보았습니다)? 정말 중요한 것을 놓치고 있습니까?
또한 Kafka는이 두 솔루션과 어떻게 비교됩니까?
Apache ActiveMQ는 기능과 멋진 기능으로 가득한 훌륭한 도구입니다. 가장 빠른 MQ 소프트웨어는 아니지만 대부분의 사용 사례에 충분히 빠릅니다. 기능 중에는 유연한 클러스터링, 장애 복구, 다른 애플리케이션 서버와의 통합, 보안 등이 있습니다.
Apache Apollo는 많은 양의 클라이언트와 메시지를 처리하기 위해 ActiveMQ에 대한 새로운 코어를 작성하려는 시도입니다. ActiveMQ의 멋지고 편리한 기능은 없지만 훨씬 더 잘 확장됩니다. Apache Apollo는 대규모 멀티 코어 서버와 수천 개의 동시 연결을 제공 할 때 정말 빠른 MQ 구현입니다. 멋지고 간단한 UI를 가지고 있지만 "일률적 인"솔루션은 아닙니다.
많은 ActiveMQ 기능을 ActiveMQ Artemis라는 이름으로 HornetQ와 병합하려는 시도가 진행중인 것 같습니다. HornetQ는 JMS2.0을 지원하므로 ActiveMQ 6.x에 나타날 가능성이 있습니다.
Kafka는 다른 짐승입니다. 여러 서버에서 가능한 한 빨리 영구 게시 구독 (주제)을 확장하기위한 매우 간단한 메시지 브로커입니다. 중소 규모 배포의 경우 Kafka가 최선의 선택이 아닐 수 있습니다. 또한 높은 처리량을 달성하기 위해 작업을 수행하는 방법도 있으므로 높은 분산 처리량을 얻으려면 유연성 측면에서 많은 것을 거래해야합니다. MQ 및 중개인 분야에 익숙하지 않은 경우 Kafka가 과잉이라고 생각합니다. 반면에-적당한 크기의 서버 클러스터가 있고이를 통해 가능한 한 많은 메시지를 푸시하는 방법이 궁금하다면 Kafka를 사용해보십시오!
이것은 오래된 질문이지만 여기서 더 현대적인 답변을 제공하겠습니다.
- Apollo 프로젝트는 비공식적으로 죽었고 Artemis가 새로운 매력이라고 제안합니다. ( 링크 ) Apollo의 (겉보기에) 지연된 개발은 Artemis의 미래에 대한 확신을주지 않습니다.
- 내 경험은 ActiveMQ가 기능이 풍부하고 유능하다는 점에서 Petter의 대답과 비슷합니다. 그러나 모든 릴리스가 임의의 충돌과 메모리 누수를 수정하는 것처럼 보이며 이것은 자신감을 불러 일으키지 않습니다. 내 프로젝트 (클러스터링 사용)에서는 안정적이지만 지난 12 개 정도의 릴리스 (현재 5.14.3 사용)에서 브로커에서 이상한 동작과 충돌을 보았습니다.
- 나는 RabbitMQ를 사용하지 않았지만 (현재 프로젝트는 ActiveMQ에 전념하고 있음) 메시징 버스가 필요한 다음 프로젝트에서 시험해 볼 것입니다. 지원할 주방 싱크가 없으면 더 안정적입니다.
편집 : 2.3.0 Apache Artemis 릴리스가 2017 년 9 월 5 일까지 발생했습니다. 따라서 현재 진행중인 것 같습니다. 그러나 ( link ) changelog는 여전히 너무 무섭게 보입니다.
저는 비 지속적 시나리오 및 지속성 시나리오에서 ActiveMQ, Apollo, HornetQ의 성능 벤치 마크이며, 아래에 표시된 링크를 사용하는 것이 도움이 될 것이라고 생각합니다. http://hiramchirino.com/jms- 벤치 마크 /ubuntu-2600k/index.html
Apache Kafka 는 "분산 스트리밍 플랫폼" 으로 특성화 될 수 있으며 , 여기서 ActiveMQ , MOM (메시징 지향 미들웨어)은 "범용 메시지 브로커" 입니다.
Kafka 는 한 가지 작업을 잘 수행합니다. 게시 / 구독 ( 게시 / 구독 ) 아키텍처에서 메시지는 토픽 (파티션별로 배포 된 로그)에 기록되고 소비자가 오프셋으로 소비합니다. 매우 높은 처리량을 염두에두고 클라우드 용 으로 구축 된 Kafka는 이에 초점을 맞추고 있으며, 요즘은 비동기 메시징을 선호합니다.
ActiveMQ 는 게시 / 구독 및 지점 간 의미 체계 를 모두 지원합니다 . 후자의 경우 대기열은 단일 생산자와 특정 소비자 간의 단일 메시지를 처리합니다. 이는 pub / sub와 같이 비동기 적이지만 약간 다르게 작동합니다. 소비자가 큐에서 메시지를 수신했지만 확인하지 못하면 메시지가 다른 소비자에게 전송됩니다. ActiveMQ는 또한 AMQP, STOMP, JMS, CAMEL 및 MQTT를 포함한 여러 메시징 프로토콜을 지원합니다.
Apache Kafka는 간단한 비동기 통신을 위해 사용할 수 있습니다. ActiveMQ는 엔터프라이즈 패턴과 같은 더 복잡한 라우팅 패턴에 대해 일부 사람들이 선호하는 것처럼 보이지만 많은 사람들은 처리량 이 더 높고 로그 / 주제에 대한 파티션 을 더 효율적으로 관리 하고 세분화 된 등의 이유로 Kafka가 ActiveMQ보다 개선되었다고 주장합니다. 주제를 소비하는 소비자를위한 ACL .
참고 URL : https://stackoverflow.com/questions/27666943/activemq-vs-apollo-vs-kafka
'IT TIP' 카테고리의 다른 글
| 스칼라의 Akka, 느낌표 및 물음표 (0) | 2020.11.23 |
|---|---|
| 높이 : 100 % (0) | 2020.11.23 |
| SQL 케이스 표현식 구문? (0) | 2020.11.23 |
| 파이썬 목록 이해를 들여 쓰기하는 방법? (0) | 2020.11.23 |
| 현재 파일을 덮어 쓰도록 SVN 체크 아웃 명령 강제 실행 (0) | 2020.11.23 |