私は、消費者がそれらのメッセージを消費するハッチを介してファンアウト方式でメッセージを生成するプロデューサーを持っています。ここには、ハッチの複数のインスタンスが実行される単一の RabbitMq サーバーがあります。
ローカル/テスト環境ではすべて正常に動作しますが、本番環境では (1 時間ごとに) ハッチ インスタンスがクラッシュし、エラーが発生します。
/home/deploy/.gem/ruby/2.2.2/gems/bunny-1.7.0/lib/bunny/concurrent/continuation_queue.rb:25:in `pop': Connection-level error: UNEXPECTED_FRAME - expected content body, got non content body frame instead (Bunny::UnexpectedFrame)
from /home/deploy/.gem/ruby/2.2.2/gems/bunny-1.7.0/lib/bunny/concurrent/continuation_queue.rb:25:in `block in poll'
ここstackoverflowなどの多数の投稿を検索した後、このエラーが競合状態に関係していることを理解するようになりました.
しかし、ハッチに実装されたソリューションは見つかりませんでした。
誰かがここで私を助けてくれれば、私は十分にうれしいです.
前提条件:
- ウサギMQ 3.3.4
- ハッチ (0.15.0)
- バニー (>= 1.7.0)
- キャロットトップ (~> 0.0.7)
- multi_json (~> 1.5)