メッセージキュー関連

まず、なぜメッセージキューの使用?

多くの場合、メッセージキューの目的:: 切り離され、非同期、クリッピング

MQを通して、パブ/サブパブリッシュ・サブスクライブ・メッセージングは​​完全に切り離され、そのようなモデルであります

同期の動作は非同期動作となるようにMQによって、効率を向上させます。

MQ、制御サービスが受信できる要求の数

第二に、どのような利点と欠点メッセージキュー

特別なシナリオの下で、対応する利点は、利点があり、非同期のデカップリングは、クリッピング、

いくつかの欠点があります。

  • システムの可用性を削減

導入された外部システムの依存関係、ハングアップする方が簡単。高可用性を備えたメッセージングキューを確保する必要性

  • システムの複雑さの増加は、メッセージが消費を繰り返されないことを保証するために、どのようにメッセージの損失が発生した場合に対処するために、どのように確保するために、そのメッセージの配信のために?無残に大きな頭、多くの問題の大部分。

  • 一貫性

しかし、問題はBCD、BD 2個の書き込みライブラリシステムが正常に行われた3つのシステム、Cの書き込みライブラリシステムの結果は、zezhengを失敗した場合のことであり、直接のリターンを超える処理システムは、人々はあなたが成功する要請と思い、成功したのですか?あなたのデータが矛盾しています。

第三に、どのようにメッセージを解決するために失われていますか?

  • ACK(消費者の確認)(コンシューマー・マニュアルACK

  • 持続性(スイッチ、キュー、メッセージ)

  • 性能検証を削減するメッセージトランザクションの使用を推奨していません

  • メーカー認証(パブリッシャ確認):プロデューサーは何の障害情報を受信して​​いないか、受信された場合、ACKのMQを待っているメッセージを送信した後、再試行してください。あなたがメッセージを受け取った場合、ビジネスの成功の結論です。

    チャネル。waitForConfirmsOrDie(10000);
  • 信頼性の高いメッセージング・サービス(また、ロジック自体を書く):一部の生産者が確認メッセージキューをサポートしていないため、メッセージがデータベースに永続化される前に、メッセージが送信され、記録ステータスメッセージ、その後のメッセージ送信、消費プロセスに依存していますデータベースを分析し、メッセージのステータスを変更します。

第四に、どのようにメッセージの蓄積を避けるために、

  • 同じキューによってより多くの消費者がメッセージのための競争を実現する監視、メッセージは消費の速度を加速します。

第五に、どのように整然としたメッセージを確保するには?

:あなたがプロ高いのタイミング要件に遭遇した場合、ほとんどのサービスは、メッセージの要求が厳しく命じ、2例を扱いました:

  • 同時操作要求の少ない中:

    • 注文した同期メッセージが送信されたときに保証

    • 同じキューメッセージが受信されていることを確認するために、

    • キューつのみ消費者を確保、スレーブ(スタンバイ状態)、高可用性があってもよいです。

    • マスタースレーブ(飼育係クラスタ予備選挙)

  • 同時に厳しいながらビジネス:

    • 前記第一の条件が満たさシーンです

    • あなたは、複数のキューを持つことができます

    • 固定された一方向ハッシュに2ハッシュをキューにディスパッチすることにより、要件のメッセージのセットタイミング - > klsdilelksd

第六に、どのように支出のメッセージの重複を避けるために?

  • 冪等を確保するためのインタフェースは、その後、どのようにそのインターフェイスの冪等、それを保証するには?

    • このようなクエリのような天然の電源のようないくつかのインターフェース、

    • いくつかのインターフェイスは、新しいような本質的冪等、ではない、ならびに特定のインタフェースの機能を変更します

      1--受信したメッセージが処理されて、3- 2-メッセージであります

      更新設定STAT = 3ここで、ID = 2及びSTAT = 2

      • 消費者の取引終了を決定することによって行うか否かは、特定のサービスまたは状態に応じて決定することができます

        MSGID転送メッセージID = 123 - 「123456のRedisのMSGID - > 123456、ユーザID

 

七、カフカ、ActiveMQの、RabbitMQの、RocketMQ何の利点と欠点?

プロパティ ActiveMQの RabbitMQの RocketMQ カフカ
スタンドアローンのスループット 一万、大きさの順RocketMQ、カフカよりも低く ActiveMQのでは 100,000高スループットをサポート 100,000高スループット、リアルタイム計算データ、ログの収集および他のシーンのための一般的なシステムを持つ大規模なデータクラス
スループットトピック数への影響     トピックは、より少ない程度に減少し、スループットの数百/数千人のレベルに到達することができ、これは大きな利点がRocketMQで、同じマシンに、あなたは、トピックの多数をサポートすることができます 倍の数十〜数百から話題、スループットが大幅に低下でき、同じマシンでは、カフカはあなたが大規模なトピックをサポートしたい場合は、より多くのマシンのリソースを追加する必要があり、そのトピックの数があまりないことを確認してみてください
即時性 ミリ秒レベル RabbitMQのの大きな特徴であるマイクロ秒、最小の遅延 ミリ秒レベル ミリ秒の遅延段内
可用性 高可用性を実現するために、マスタ・スレーブ・アーキテクチャに基づいて、高 ActiveMQのでは 非常に高い、分散アーキテクチャ 分散データの非常に高い、複数のコピー、機械のダウンタイムの数が少ないが、何もデータが失われることはありません、それは利用できませんにはなりません。
メッセージの信頼性 データ損失の低い確率を持っています 基本が失われることはありません パラメータ最適化設定の後、それが0の損失を行うことができます RocketMQ付き
サポート機能 完全なのMQ非常に機能領域 アーランの開発に基づいて、同時性が非常に強い、優れた性能、低遅延であります MQ関数は、より完璧な、または分散、スケーラビリティ この関数は、主支持シンプルMQ機能、リアルタイムシステムは比較的単純で、フィールドで収集されたデータを記録する大規模な使用であり、

中小企業は、技術力はRabbitMQのは良い選択であるとの技術的な課題は、特に高いものではなく、より一般的です。

大企業RocketMQと、R&Dインフラ強いが、良い選択です。

もしそうであれば、データの大面積をリアルタイムに計算し、カフカで収集し、他のシーンを、ログの業界標準であり、間違いなく問題ありません、コミュニティの活動度の高い、ほとんど世界中でてきたこの分野の性的規範という事実です。

おすすめ

転載: www.cnblogs.com/cndarren/p/11517324.html