カフカ、ActiveMQの、RabbitMQの、RocketMQ差がない、どのような利点と欠点メッセージキュー

インタビューの質問

  • なぜ、メッセージキューを使用できますか?
  • メッセージキュー長所と短所は何ですか?
  • カフカ、ActiveMQの、RabbitMQの、RocketMQ違いは何だ、と何のシナリオにフィット?

インタビュアー心理分析

実際には、インタビュアーは、主に見てみたいです。

  • まず、あなたのシステムメッセージキューこの事を使用する方法を知っていますか?
    多くの候補者はRedisの、MQと、自分のプロジェクトに言うが、彼らはこのようなものを使用する理由、実際に彼は知りませんでした。実際に、分かりやすく、それを使用し、使用、または他の誰かの設計アーキテクチャは、彼は最初から最後まで考えたことはありませんことです。
    自国民のいかなるインフラストラクチャは、なぜ、一部の人々は通常のとは思わない印象のこのタイプのインタビュアー通常、非常に良い候補者を求めていません。あなたがチームに乾燥滞在した後にのみMutoumunaoが自分の考えではないでしょう心配ジョブインタビュアーので。

  • 第二に、あなたがこのことをメッセージキューを使用するので、あなたは知っている何が良いの使用&害?
    あなたはこのことを考慮されていない場合、あなたはあなたの後ろに、盲目的にシステムへのMQのホールドを取得し、自分の会社には問題ではありませんピットを残すために滑っ?あなたが技術的な欠点とリスクの可能性導入を検討していない場合は、インタビュアーは、それらを募集するために、このような候補者を置き、基本的にはおそらく掘り込み型の選手。怖いあなたはピットの束は無限のトラブルに会社を残し、彼は辞め年を掘っありません。

  • 第三に、あなたがMQを使用するので、あなたはその時点で調査をしなかったん、MQの特定の種類のことができますか?
    このようカフカなどMQとの盲目の愚かな自分の個人的な好み、私たちの脳をラッキングしない、あるいは最後にいくつかのMQを持っている一般的な業界研究、行ったことがありません。各MQのはいの長所と短所は何ですか。各MQは、絶対的な良いか悪いかではありませんが、それはあなたが可能なシーンを確認することです、弱点を避けるために自分の強みを活用し、自分の弱点を避けます
    それはチームに採用技術の選択のための候補と見なされていない場合、リーダーは彼に彼が最後の選挙の内側に選択する際に考慮たことがないかもしれないいくつかの技術を使用し、可能な技術的なものをシステム設計するタスクを与えましたピットを残しているように、必ずしも適切ではありません。

フェイス質問解析

メッセージキューを使用する理由

実際には、メッセージキューは、その後、プロジェクトのどのような特定のシーン、あなたはこのシーンでは、メッセージキューであるかについての使用シナリオ何話をしているお聞きしているのですか?

インタビュアー、あなたにこの質問をする答えは期待して会社がしたものであり、ビジネス・シナリオではないMQが煩雑になる可能性があれば、後で、ビジネスシナリオは、技術的な課題があるが、あなたは今MQを使用するには、あなたをもたらしました多くの利点。

私はメッセージキューの一般的な使用シナリオについてお話しましょう、実際には、シーンがたくさんありますが、それ以上の中央3があります:デカップリング非同期クリッピング

デカップリング

そのようなシーンを参照してください。3つのBCDデータは伝送インタフェースコールを介してシステムに送信されます。E-Systemは、この情報を使用している場合は?Cシステムその場合は、今それを必要としませんか?システムの担当者はほとんど崩壊し......

このシナリオでは、システムの他の深刻な混乱の様々な結合されたシステムは、システムがより重要なデータを生成するために、多くのシステムでは、データを介して送信するシステムが必要です。BCDE 4つのシステムが国にリンクされている場合、システムは常に考慮する必要がありますか?、彼らが保存したいメッセージを再送しませんか?ホワイト髪ああ!

あなたはMQを使用している場合、システムは、MQ消費自身内のデータを必要とするシステム中に入るMQに送信されたデータを生成します。新しいシステムがデータを必要とする場合、それはMQ年から直接消費することができ、システムは、このデータを必要としない場合、消費者は、MQメッセージのためにそれを取り消すことができます。だから、ダウン、システムは単純にデータを送信するために誰を検討する必要はありませんでした、このコードを維持する必要は人々が成功、失敗のタイムアウト状況を呼び出すかどうかを検討する必要はありません。

概要:MQを通じて、パブ/サブパブリッシュ・サブスクライブ・メッセージングは、このようなモデル、ちょうど完全に切り離され、他のシステムのようなシステムです。

インタビューのヒント:お互いを維持するために非常に複雑で面倒である間は、複数のシステムまたはモジュールと呼ばれる、あなたのシステムを担当している同様のシナリオは、システムまたはモジュールが存在しているかどうかを検討する必要があるが、呼び出します。しかし、実際には、MQとデカップリングは、また、可能であるならば、この呼び出しは、それへの非同期は直接コール・インタフェースの同期、ではありません、あなたのプロジェクトで検討する必要があり、それが切り離さのMQシステムを使用することはできません。デカップリングとしてMQを使用して、あなたの履歴書でこのようなものを反映しています。

非同期な

シーンを見てみましょう、システムが要求を受信すると、それは彼の地元の図書館で記述する必要があるが、また、3msのは、地元の書き込みを所有する3つのBCD図書館システム、ライブラリを記述する必要が、3つのシステムが300ミリ秒、450ms、200msのにあるライブラリBCDを書きます。最後の要求の合計遅延は、ユーザーが前方に何か、スローデッドスロー死を置く感じ、1秒に近い= 953ms 3 + 300 + 450 + 200、です。ユーザーはほとんど受け入れられないブラウザ、待機1Sを通じて要求を開始します。

一般的なインターネットビジネスクラス、ユーザーのための直接操作は、一般的な要件は、ユーザーがほとんど知覚されない、各要求は、200ミリ秒以内に完了しなければならないということです。

場合MQを使用して、ユーザーが実際に感じるようにするために、次に連続MQキューに3つのメッセージを送信するシステムは、時間のかかる5msの場合、要求はユーザに応答を返すためにシステムから受信され、全長は、3 + 5 =の8msのありますそれは、ボタンの位置にあり、直接、8msの後にクール戻りました!良い、本当に速いやってウェブサイト!

クリッピング

12日目の午後12時00分:00、穏やかシステム、50秒あたりの同時リクエストの数。午前12時と午後1時00にそれぞれ1の結果は、秒あたりの同時リクエストの数が+突然ストリップをサージKB以下。しかし、このシステムは、直接多数の要求は、SQLのMySQLの第二の実行あたり約5KのMySQLとMySQLの流入に基づいています。

5Kに秒あたりの要求は、それはMySQLは、ユーザーは、システムを再利用することはできませんシステムのクラッシュで、その結果、殺さ直接に与える可能性がある場合、一般的にMySQLは、同じ被写体に毎秒2kのリクエストにまたがっています。

しかし、ピーク期間は、それが低いピークになったときに、午後に、終わったサイト上の同時ユーザーのことも1ワット、1秒あたりの要求数があり、また50件の要求、システム全体のほとんどありません圧力。

MQ場合は、2番目のMQに5,000の書き込み要求は、2Kアップシステム要求は、2KのMySQLのため、第2のアッププロセスごとに、1秒あたりに処理されます。ゆっくりと2kの要求を引き出すために、毎秒MQ要求からシステムを引くための時間は、それがピークであったとしても、その下に、彼はそれをOK扱うことができる秒あたりの要求の最大数を超えない、ノーシステムは絶対にありそれがハングします。第二の要求あたりのMQの5Kがでてくる結果は、正午のピーク期間(1時間)につながる、彼らは2K要求の出、MQでリクエストのバックログの数十万人、あるいは数百万人があるかもしれません。

この短いピークのバックログは、理由は過去のピークの後、MQへの50秒あたりの要求okですが、プロセスにおける第2の速度あたり2kの要求に応じて、まだシステム。だから、限り、ピーク期間があるため、システムは、メッセージの迅速バックログはを取り除くためになります。

長所と短所メッセージキューは何ですか

利点は、それがすることです、以上述べてきた特別なシーンの下で、それに対応する利点を持ってデカップリング非同期クリッピング

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

  • システムの可用性削減
    システムによって導入された外部依存関係を、より簡単にハングアップします。MQはzezhengを切った場合は4人、のように適切にABCDシステム、何の問題を3つのBCDシステム・インターフェースを持っていたシステムコールは、あなたが部分的MQが入ってくる追加、ぶら下げ、システム全体のクラッシュをMQあなたは完成するのでしょうか?メッセージキューの高可用性を確保する方法

  • 一貫
    システムが直接リターン上で処理するためには成功し、人々はあなたが成功する要求だと思います。しかし、問題はBCD、BD 2個の書き込みライブラリシステムが正常に行われた3つのシステムならば、C書き込みライブラリシステムの結果が失敗したことで、 Zezheng?あなたのデータが矛盾しています。

だから、メッセージキューは、実際には非常に複雑なアーキテクチャである、あなたはそれは多くの利点を持って紹介するだけでなく、それが秋を回避するためにもたらす害のための追加的な技術ソリューションとアーキテクチャのすべての種類を行う必要があり、よく後、あなたは母親がわかりますステージの数は、複合体は10倍とすることができるシステムの複雑さを高めるために、死にます。しかし、重要な瞬間、使用、または使用統計。

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

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

要約すると、コントラストのすべての種類の後に、次の推奨事項があります。

、コミュニティは非常にアクティブなMQを導入するための一般的なビジネスシステム、我々はすべてのActiveMQを使用しますが、今はあまり使用しない早い、無実績のある大規模なスループットのシーンをではありませんので、我々はまだそれを忘れて、私は個人的にしないでください私たちは、これを使用することをお勧めします。

その後、それはRabbitMQのを使うようになったが、それは、Javaエンジニアは綿密な調査を行って、それを制御する、企業のために、ほとんど制御不能な状態ではなく、人々はまた、本当にオープンソース、比較的安定した支援活動しているのErlang言語の多くを防ぐん高;

しかし、今より多くの企業が実際にRocketMQで行くだろう、本当に良い、(現在RocketMQはに寄付されたすべての後に、アリは生産が、リスクのコミュニティは急に黄色を失っている可能性がありアパッチが、活動はGitHubの上で実際に高くありません)自分の技術力が絶対的に確信してい、RocketMQをお勧めします、それ以外のRabbitMQと背中と正直にそれを行って、他の人がアクティブなオープンソースコミュニティを持って、黄色ではないでしょう。

だから、中小企業の良い選択、技術的な強さがより一般的で、技術的な課題が特に高くはない、RabbitMQのとされ、大企業 RocketMQと、インフラストラクチャ、強力なR&D強度は、良い選択です。

もしそうであれば、データの大面積をリアルタイムに計算し、カフカで収集し、他のシーンを、ログの業界標準であり、間違いなく何の問題、社会活動家の高い、黄色のではないでしょう、ではないに言及し、この分野では、世界中のほぼ当たり前という事実ではありません。

オリジナル住所ます。https://juejin.im/post/5d79ca19e51d4561fa2ec10d

おすすめ

転載: www.cnblogs.com/jpfss/p/11511509.html