DUICUO

メッセージキューとは何ですか?この記事を読んで詳しく知りましょう。

1. ラビットMQ

RabbitMQ は、AMQP (Advanced Message Queuing Protocol) を実装し、メッセージの永続性、メッセージの確認、柔軟なルーティング、バインディングなどの豊富な機能を提供するオープンソースのメッセージ キュー システムです。

RabbitMQ 公式サイト: www.rabbitmq.com

RabbitMQはErlang言語で開発されています。Erlangの並列処理の利点を活かし、AMQP、XMPP、SMTP、STOMPといった多くのプロトコルをサポートし、1秒あたり数万件のパフォーマンスを実現します。

RabbitMQ の全体的なアーキテクチャ図を以下に示します。

写真

2. カフカ

写真

Apache Kafka は、大規模なリアルタイム データ ストリームを処理できる分散ストリーミング プラットフォームです。

Kafka 公式ウェブサイト アドレス: kafka.apache.org

Kafka はパブリッシュ/サブスクライブ モデルに基づいており、高いスループットと永続性を提供するため、大量のリアルタイム データを扱うシナリオに適しています。

Kafka は元々 LinkedIn によって開発され、2011 年初頭にオープンソース化されました。そのパフォーマンスは 1 秒あたり数百万回に達し、全体的なアーキテクチャは以下のとおりです。

写真

3. ロケットMQ

写真

RocketMQは、Alibabaグループによって開発され、オープンソース化された分散メッセージキューシステムです。RocketMQは、Alibabaグループの社内システムで広く利用されています。

RocketMQ は、高スループット、低レイテンシ、高信頼性、スケーラビリティを特徴としており、大規模分散システムにおけるメッセージ通信や非同期分離のシナリオに適しています。

RocketMQ 公式サイト: rocketmq.apache.org

RocketMQはKafkaを参考に設計されており、1秒あたり数十万リクエストのパフォーマンスを実現します。全体的なアーキテクチャ図を以下に示します。

写真

4. パルサー

写真

Apache Pulsar は、高いパフォーマンス、スケーラビリティ、永続性機能を備えたオープンソースの分散メッセージングおよびストリーム処理プラットフォームです。

Pulsar は、マルチテナント、マルチデータセンターの展開と動的スケーリングをサポートしており、大規模で複雑なメッセージ キューイングやストリーム処理のシナリオに適しています。

Pulsar公式サイト: pulsar.apache.org

Apache Pulsarは、Apache Software Foundationのトップレベルプロジェクトであり、次世代のクラウドネイティブ分散メッセージングプラットフォームです。全体的なアーキテクチャ図を以下に示します。

写真

5. アクティブMQ

写真

ActiveMQ は、JMS (Java Message Service) 仕様をサポートする、Apache Software Foundation のオープンソース メッセージ ミドルウェアです。

ActiveMQ は、ポイントツーポイント (P2P) やパブリッシュサブスクライブ (Pub/Sub) などの複数の通信モードを提供し、信頼性、スケーラビリティ、高可用性を特徴としています。

ActiveMQ 公式サイト: activemq.apache.org

6. メッセージキューの選択

大まかに言えば、eコマースや金融など、トランザクション要件の高い業界ではRocketMQが適しています。技術的な課題が少ない業界ではRabbitMQが適しています。ビッグデータ分野におけるリアルタイムコンピューティングやログ収集を伴うシナリオでは、Kafkaの方がより適しています。