AMQP プロトコル: コンシューマー、プロデューサー、および RibbitMQ ノード間の対話プロセス (RibbitMQ のコア コンポーネント)

元のリンク
1. AMQP プロトコルとは何ですか?
AMQP の正式名称: Advanced Message Queuing Protocol (Advanced Message Queuing Protocol)。メッセージ指向のミドルウェア向けに設計された、アプリケーション層プロトコルの開発標準です。
このプロトコルに基づくクライアントとメッセージ ミドルウェアは、クライアント/ミドルウェアの異なる製品や開発言語に制限されることなく、メッセージを送信できます。最下層は Erlang (Ai Leng) 言語で開発されており、代表的なサポーターには RabbitMQ と ActiveMQ があります。
2. AMQP プロデューサー転送プロセス
ここに画像の説明を挿入
1. プロデューサーはブローカー (ノード) との接続を確立し、特定のプロトコルに従います;
プロデューサーは IP、ポート、ユーザー名、パスワードなどの情報をプロトコル ヘッダー (プロトコル ヘッダー) にパックします。 、およびブローカ(ノード)に送信すると、接続要求が開始され、2 つが接続を確立し、
2、チャネル(チャネル)を開き
、3、メッセージを送信し、
4、リソースを解放します。

インタビューの質問: RibbitMQ は、接続に基づいてメッセージを処理するのではなく、チャネル (チャネル) に基づいてメッセージを処理するのはなぜですか?
アプリケーションには、rabbitmq から消費するか、メッセージを生成する必要がある複数のスレッドがあるため、多数の接続、つまり複数の tcp 接続を確立する必要があります. オペレーティング システムの場合、tcp 接続の確立と破棄は非常に高価です. Rabbitmq は、nio と同様の方法を採用して tcp 接続を多重化するため、パフォーマンスのオーバーヘッドを削減できるだけでなく、管理も容易になります。
各スレッドはチャネルを保持するため、チャネルは TCP 接続を多重化します。
接続(接続)には、複数のチャネル(チャネル)があります

3. AMQP コンシューマー循環プロセス
ここに画像の説明を挿入
1. プロデューサーと同様に、接続を確立します
2. チャネルを開きます
3. メッセージを受信します
4. メッセージをプッシュします
5. 確認を送信します
消費者確認には、自動確認と手動確認の 2 種類があります。
参照リンク
ここに「信頼できる消費」の問題があります:
自動消費: ブローカーが消費者にメッセージを送信するとき、「送信して終了する」方法が使用されている場合、消費者がメッセージを受信する前に TCP 接続が切断されているため、コンシューマーはメッセージを受信しませんでしたが、ブローカー ノード (つまり、RibbitMQ サーバー) はコンシューマーが既にコンシュームしたと考えています; これは安全でない手動のコンシュームと見なされます: (基本 Ack) Ack への手動応答を有効にし、サーバーは待機
ます消費者が消費を確認するために返信するため 6.
リソースを解放する

RabbitMQ のコア コンポーネント

RabbitMQ のコア コンポーネント

おすすめ

転載: blog.csdn.net/dayuiicghaid/article/details/128450281