node-amqp を使用しています。各キューには、1 つの送信側と 1 つのコンシューマーがあります。送信者側では、アクティブなコンシューマーのリストを維持する必要があります。問題は、消費者のコンピューターがクラッシュしたとき、どのように通知を受け取り、送信者側のリストから削除するのでしょうか?
質問する
1731 次
2 に答える
2
MQ の概念を正しく使用していない可能性があります。全体のポイントは、消費者を生産者から切り離すことです。全体として、消費者が消費するメッセージのタイプを除いて、消費者について何かを知ることは生産者の仕事ではありません。コンシューマーがクラッシュした場合にプロデューサーが生成し続け、読み取り元のキューにメッセージが蓄積され続けるという点まで。
于 2012-10-28T07:06:15.343 に答える
1
RabbitMQ の HTTP API (http:// server-name :55672/api/) を使用して接続のリストを取得する方法がありますが、頻繁にクエリを実行するにはあまりにも残忍です。理論的には、代替交換を使用して未配信メッセージを検出する方法もありますが、この方法はまだ試していません。また、 http ://www.rabbitmq.com/dlx.html で説明されているように、dead-letter-exchanges を使用して予期しない消費者の切断を検出できる場合があります。
于 2012-11-24T09:11:04.887 に答える