メッセージ キューには次のものが含まれます: 1. RabbitMQ (AMQP に基づく再利用可能なエンタープライズ メッセージング システムです。現在最も主流のメッセージ ミドルウェアの 1 つです。) 2. ActiveMQ (完全にサポートされている [JMS プロバイダー]) JMS1.1およびJ2EE1.4仕様の実装。
1 RabbitMQ
RabbitMQ は 2007 年にリリースされ、AMQP (Advanced Message Queuing Protocol) に基づいています。再利用可能なエンタープライズ メッセージング システムであり、現在最も主流のメッセージング ミドルウェアの 1 つです。
主な機能:
信頼性:パフォーマンスと信頼性の間のトレードオフを可能にするさまざまなテクノロジーを提供します。これらのテクノロジーには、永続化メカニズム、配信確認、発行者確認、および高可用性メカニズムが含まれます。
柔軟なルーティング: メッセージはキューに到着する前にスイッチを介してルーティングされます。 RabbitMQ は、一般的なルーティング ロジック用にいくつかの組み込みスイッチ タイプを提供します。より複雑なルーティング要件がある場合は、これらのスイッチを組み合わせることができます。独自のスイッチ タイプを実装して、それを RabbitMQ プラグインとして使用することもできます。
メッセージ クラスター: 複数の RabbitMQ同じ LAN 内のサーバーを集約して、独立した論理エージェントとして使用できます。
キューの高可用性: キューをクラスター内のマシンにミラーリングして、ハードウェアの問題があってもメッセージのセキュリティを確保できます。 ;
複数のプロトコルのサポート: 複数のメッセージ キュー プロトコルをサポート; サーバー側は Erlang 言語で書かれており、考えられるすべてのプログラミング言語をサポートします;
管理インターフェイス: RabbitMQ には、ユーザーがメッセージ ブローカーのさまざまな側面を監視および管理できる使いやすいユーザー インターフェイスがあります。
追跡メカニズム: メッセージが異常な場合、RabbitMQ は、ユーザーが何が起こったのかを知ることができるように、メッセージ追跡メカニズムを提供します;
プラグイン メカニズム: 多くのプラグインが、さまざまな側面で拡張するために提供されています。独自のプラグイン;
2 ActiveMQ
ActiveMQ は Apache によって作成され、ActiveMQ は JMS1.1 および J2EE 1.4 標準 JMS を完全にサポートしています。プロバイダーの実装。非常に高速で、複数の言語クライアントとプロトコルをサポートし、エンタープライズ アプリケーション環境に簡単に組み込むことができ、多くの高度な機能を備えています。
主な機能:
JMS 仕様への準拠: JMS 仕様は、次のような適切な標準と保証を提供します。 同期または非同期のメッセージ配布、1 回限りのメッセージの配布、メッセージ受付や購読など。 JMS 仕様に準拠する利点は、どの JMS 実装プロバイダーが使用されているかに関係なく、これらの基本機能を利用できることです。
接続性: ActiveMQ は、幅広い接続オプションを提供し、サポートされるプロトコルには、HTTP/S、IP マルチキャスト、SSL、STOMP、TCP、UDP、XMPP などがあります。多くのプロトコルのサポートにより、ActiveMQ に優れた柔軟性が与えられます。
多くのタイプのプロトコルをサポート: OpenWire、STOMP、REST、XMPP、AMQP;
永続化プラグインとセキュリティ プラグイン: ActiveMQ は複数の永続化オプションを提供します。さらに、ActiveMQ のセキュリティは、ユーザーのニーズに基づいて認証と認可を完全にカスタマイズすることもできます。
は、多くの種類のクライアント言語をサポートしています。Java に加えて、C/ C、.NET、Perl、PHP、Python、Ruby;
エージェント クラスター: 複数の ActiveMQ ブローカーがクラスターを形成してサービスを提供できます;
3 RocketMQ
RocketMQ は Alibaba のオープン ソース製品です。Java 言語で実装されています。設計中に Kafka を参照し、いくつかの機能を作成しました。独自の改良により、メッセージの信頼性が Kafka よりも優れています。 RocketMQ は、Alibaba Group で注文、トランザクション、リチャージ、ストリーム コンピューティング、メッセージ プッシュ、ログ ストリーミング、binglog 配布、その他のシナリオで広く使用されています。
は、高性能、高信頼性、高いリアルタイム性と分散特性を備えたキュー モデルのメッセージ ミドルウェアです。
Producer、Consumer、キュー
Producer はメッセージをいくつかのキューに順番に送信し、そのキュー コレクションは Topic と呼ばれます。Consumer がブロードキャスト消費を行う場合、1 つのコンシューマ インスタンスはこの Topic に対応するすべてのキューを消費します。クラスター消費を行う場合、
複数の Consumer インスタンスがこのトピックに対応するキュー セットを平均して消費します。
は厳密なメッセージを保証できます。 ;
リッチ メッセージ プル モードを提供;
サブスクライバーの効率的な水平拡張機能;
リアルタイム メッセージ サブスクリプション メカニズム;
10 億レベルのメッセージ蓄積機能;
依存関係の軽減;
4 Kafka
Apache Kafka は、分散型メッセージ パブリッシュおよびサブスクリプション システムです。元々は LinkedIn によって独自の設計に基づいた分散コミット ログ システム (分散コミット ログ) として実装され、後に Apache プロジェクトの一部となりました。 Kafka システムは高速で、スケーラブルで、耐久性があります。その分割特性、複製可能性、耐障害性はすべて優れた機能です。
高速永続化、メッセージ永続化は O(1) システム オーバーヘッドで実行可能;
高スループット、通常のコンピュータ上でのスループット レートサーバー上で 10W/s を達成できます。
。完全に分散されたシステム、ブローカー、プロデューサー、およびコンシューマーはすべてネイティブかつ自動的に分散をサポートし、ロード バランシングを自動的に実現します。
同期レプリケーション HA と非同期レプリケーション HA の両方をサポートします。
#データのバッチ送信とプルをサポートします。
zero- copy: IO 操作手順を削減します。
データの移行と拡張はユーザーに対して透過的です。
マシンはダウンタイムなしで拡張できます。
以上がメッセージキューとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。