RabbitMQは、パイプや名前付きパイプなどのプロセス間通信に使用されますか? RabbitMQは名前付きパイプとどのように比較されますか?分散システムは除く。
(RabbitMQまだ触れていない方のために申し上げると、AMQPを使用するオープンソースミドルウェアエンタープライズメッセージブローカーです。 )
答え1
RabbitMQは、パイプや名前付きパイプなどのプロセス間通信に使用されますか?
いいえ。これは通常、RabbitMQやメッセージングブローカーベースのミドルウェアを理解する最良の方法ではありません。
RabbitMQとその類似を理解し始める例を探しているなら、低レベルのIPCについてはまったく考えないでください。
Unixメールを考えてみてください。
- プログラムはメッセージを生成します。
- タイトルと本文のテキストがあります。
- 彼らは(オプション)メッセージID、MIMEコンテンツタイプ、タイムスタンプ、返信アドレス。
- これはブローカーに送信されます。
- エージェントはそれをルーティングし、ルーティングトポロジに従って他のプログラムがそれを検索するキューに入れます。
- 持つファンアウト交換送信するメッセージのコピーを複数作成します。
- でも死んだメールボックス。
もちろん、一度詳細を取得した後、電子メールではありません。
- ルーティングトポロジは、メッセージの送受信に使用されるのと同じクライアント - サーバープロトコルを使用してクライアントプログラムによって制御されます。
- DNSはあまり関与しません。
- 保存して渡すことではありません。
- ファンアウトの交換のみ可能とてもメーリングリストと同じです。
- クライアントプログラムはこのプロトコルを使用してキューを消去できます(https://askubuntu.com/a/707523/43344) メッセージの TTL を設定します。
- 持続性と持続性の程度はさまざまです。
- メッセージの受信には握手を含めることができます。ポジティブそして否定的なとプログラムで強制再送信。
- 持つどのクライアントがどのインフラストラクチャ部分にどのアクセス権を持っているかを制御するためのセキュリティパラダイムを使用すると、管理者は「JdeBP」というユーザー資格情報でログインしたクライアントがメッセージを送信できる場所を制限できます。
しかし、郵便で送るのは良い考えです。最初の近似とにかく、これらの概念を理解するには、IPCまたはRPCサブシステムと比較する方がはるかに良いです。