メッセージのバックログは、MQで通常のことですが、過剰のバックログは、それが失われたメッセージにつながる、あるいはシステムがクラッシュすることができます。我々は解決するために、プリおよびポストの予防に二つの側面を扱っていること。
事前にまず、予防
私たちは、一般的には、メッセージ、バルクと増加のバックログを防ぐにはどうすればよいこれらの2つの方法は、送信者によって複雑さ、および消費者は、これらの2つの側面がに対処することができます。
1.1送信端
1.バッチ。例えば、データのバッチは、データベースから見つかったMQ送信されます。
並行性を増やす2.。マルチスレッド同時処理
1.2消費者エンド
私たちは、共通のアプローチが戻りMQがバックグラウンドスレッド同時処理の無い量いることが確認され、直接メモリキューに、メッセージのMQを受信する必要があります。消費率が加速しているが、問題はありますが、その後消費者側がダウンしているデータ・メモリ・キューが失われ、メッセージが失われます。したがって、我々は、MQ確認にメッセージを送信するメッセージを解決する必要があります。
インスタンスの同僚消費者の最終消費者の数を増やすと、キューの拡張のトピックの数は、消費者がキュー番号で、インスタンスの数が等しいことを確認する必要があります。キューの数が増えない場合は、同じキューにシングルスレッド処理が、あるため、拡張は、それが消費者の数が増加しても、数をキューイングしなければならない理由については、消費速度を増加させませんでした。
第二に、後処理
あまりにも多くの生産上のメッセージのバックログがある場合は、どのように我々はそれに対処すべきか?バックログのニュースの後の最初の原因を見つけるために、ゆっくりと、その後すぐに消費し、しなければなりません。
一般的にはこれ以上のメッセージのバックログには二つの理由よりも速すぎたり遅すぎる消費を送信し、我々は確かになることはできませんMQの終了を監視することにより、問題があるということです。
速すぎ送る1。スピードは、消費者側て送信の速度を維持することはできません。
消費インスタンス、ニュースの急速な消費の1.1緊急展開。
1.2データの量、送信側、優先メッセージバックログを減らす十分なサーバーの拡張、ダウングレード、重要なタスクのいくつかのオフ、存在しない場合。
2.消費者は遅すぎます。ビューにエラーログの原因を確認し、印刷スタック情報や考えは非常に遅く、その結果、いくつかのリソース消費を発生したかどうかを確認するのを待ちます。
3.ログメッセージの消費が失敗があるかどうかを確認する必要がある場合の消費で、その結果、通常と同じように送信し、消費の速度が繰り返された場合。