RabbitMQ の実運用障害問題の修復と分析

1.    問題の原因

  特定のサービスの BI-collector-xx キューがブロックされているため、rabbitMQ クラスター サービス全体が利用できなくなり、複数のアプリケーションの MQ プロデューサー サービスが一時停止状態になり、広範囲のシステムに影響を及ぼし、仕事。このとき、運用保守担当者は、緊急事態に対処してシステムを復旧させるため、比較的容赦なくブロックされたキュー情報を大量にクリアし、クラスタ全体を再起動しました。RabbitMQ の実運用障害問題の修復と分析

欠陥全体を検討する過程で、私は心の中に多くの疑問を抱きました。少なくとも次の問題がありました。

  1. キューがブロックされるのはなぜですか?
  2. なぜ特定のキューのブロックが他のキューの動作に影響を与える(つまり、複数のキュー間の相互影響)のでしょうか?
  3. アプリケーションの MQ キューに問題があると、アプリケーションが使用できなくなるのはなぜですか?

2.    テストキューがブロックされている

ある週末、自宅でテスト環境を見つけ、rabbitmq をインストールしてこのプロセスを再現し、シミュレーション テストを実行します。

プロデューサーとコンシューマーをそれぞれ使用して 2 つのテスト アプリケーション デモ (2 つのプロジェクト アプリケーションを想定) を作成し、それぞれキュー testA と testB を使用します。

本番環境を可能な限り復元するために、最初のテストでは同じ仮想ホストを使用し、後で別の仮想ホストを設定しました。

プロデューサーAさんのサンプルコードは以下の通りです

 

消費者A

 

おすすめ

転載: blog.csdn.net/yetaodiao/article/details/131326303