2019 RabbitMQの高周波インタビューの質問(javaの)

序文

私たちは、新しい年の到来を告げるしようとしていると2019はすぐに、オーバーになり、春祭り、再び到来を告げる新しいインタビューの金と銀の3四季インチ その後、手で物事を行うに引き続き、あなたは類人猿のプログラムとして、実際にも、それのために準備すること、または自分の仕事に満足。
もちろん、あなたがJavaエンジニアとして、その後、金や銀3 4後に終了して本当に準備ができている場合は、選択したどんなには読まれないことがあります。どのように数ヶ月の時間で、急速適切今後の面接の準備をしますか?

1. RabbitMQの使用シナリオは何?

システムの崩壊を防止するための活動を購入、負荷シフト、。


こうした利用者10分の単一の非支払いに電子メールアラートを送信するように、遅延情報処理、。


新機能のためのシステムをデカップリングすることは、このような評価の後にユーザの確認として、別のモジュールの拡張を書くことができ、ビジネスコードに統合された新機能を追加することなく、バックユーザポイントにこの時間を機能を追加するだけ追加する必要があります積分の評価にキューインターフェイスのサブスクリプションの確認メッセージが、その後メッセージキューをサブスクライブするだけで任意の機能を追加します。

そこに重要な役割2. RabbitMQのは何ですか?

生産者、消費者、エージェント:RabbitMQのが重要な役割を持っています:

プロデューサー:

メッセージサーバにデータを作成し、プッシュを担当するメッセージの作成者、;

消費者:

データおよび肯定応答メッセージを処理するメッセージの受信者、。

エージェント:

RabbitMQのは、単に「エクスプレス」の役割を果たし、自身がメッセージを生成しません「表現」の役割を再生するために、自分自身です。

重要なコンポーネントが3 RabbitMQのは何ですか?

ConnectionFactory(接続管理)アプリケーションマネージャとウサギの間の接続を確立し、プログラムコードが使用しました。

Channel(信道):

プッシュメッセージのチャンネルが使用されます。

交換(スイッチ):

、割り当てメッセージを受信します。

キュー(待ち行列):

メッセージプロデューサを保存します。

RoutingKey(キーをルーティング):

スイッチに割り当てるためのデータ生成。

BindingKey(キーバインディング):

これは、バインドされたメッセージのキューに切り替えるために使用しました。

バーチャルホストがある中で役割4. RabbitMQのは何ですか?

バーチャルホスト:各RabbitMQのは、たくさんのバーチャルホストを作成することができ、我々は実際のRabbitMQのミニバージョンです各仮想ホスト、仮想ホストを呼び出し、それが自分の権利のメカニズムを持って、独自のキュー、スイッチとバインディングを持っています。彼はまた、データベースの概念として理解することができます。

5. RabbitMQのは、メッセージを送信する方法ですか?

まず、クライアントは、あなたは、TCPオープンと認定(ユーザー名とパスワードのウサギのサーバーに送信されていることの証明)を1回、クライアントとウサギサーバ間のTCP接続を作成し、公開したメッセージを消費するのRabbitMQサーバーに接続する必要がありますクライアントとのRabbitMQはAMQPチャネル(チャネル)を作成し、チャネルは「本物の」TCPでの仮想接続を作成することであり、AMQPコマンドは、チャネルを介している送り出され、各チャネルは、それが解放されるかどうか、一意のIDを持っていますメッセージは、サブスクリプション・キューは、このチャネルを経て完成されています。

6. RabbitMQのは、どのようにメッセージの安定性を確保するには?

これは、機能の業務を提供します。

確認(確認応答)モードへのチャネルを設定すること。

メッセージの損失を回避するためにどのように7 RabbitMQの?

メッセージは、メッセージが失われないことを保証するために、サーバーを再起動し、永続ディスクです。

各クラスタは、ディスクが保証されたメッセージを落下、少なくとも一つの物理ディスクを持っています。

8.どのような持続性の条件付きメッセージの成功を確実にするために?

文のキューはtrueに耐久性のあるセットを永続化するために設定する必要があります。

プッシュメッセージ配信永続モードを設定する必要があり、2(永続的)に配信モード設定。

メッセージは、永続的なスイッチが到着しました。

メッセージは永続キューを到着しました。

これらの4つの条件は、成功するためのメッセージの永続性を確保するために満たされています。

9. RabbitMQの永続短所は何ですか?

土地の持続的な欠如は、スループット低減ので代わりにメモリ・ストレージを使用してのディスクサーバのスループットを減少させることです。SSDハードドライブは、スループットの問題を軽減するために利用することができます。

放送のいくつかの種類があり10 RabbitMQのですか。

(デフォルト)に指示:

デフォルトのポーリング方法メッセージングを取って、複数の加入者がある場合、最も簡単な最も基本的なモードでは、送信者は、加入者にメッセージを送信します。

ヘッダ:

そして、ほとんどの少ないこのタイプよりも、似ているが、パフォーマンスの低下を指示。

扇形に広がります:

配布モデル、すべての加入者に配布し、消費者。

トピック:

その後、通常のメッセージ・キューにマッチしたマッチングサブスクリプションモデルでは、受け取ることができますに一致させることができます。

遅延メッセージキューを達成するためにどのように11 RabbitMQの?

遅延キューは、2つの方法で達成しました:

デッド・レターメッセージを入力してスイッチを満了し、その後、遅延機能を実現するために、消費者のキュー遅延にスイッチによって転送されます。

使用のRabbitMQ遅延メッセージ交換プラグイン実装遅延機能。

12. RabbitMQのクラスタの使用は何ですか?

以下の二つの目的で主にクラスタ化:

高可用性:

サーバーの問題は、全体のRabbitMQは使い続けることができます。

大容量:

クラスタは、より多くのメッセージの量を運ぶことができます。

13. RabbitMQのノードタイプ何?

ディスクノード:

メッセージはディスクに保存されます。

メモリノード:

メモリに格納されたメッセージは、ディスクタイプよりもサーバーメッセージ損失、より高い性能を再起動します。

注意が必要なものの問題ビルドに14のRabbitMQクラスタ?

ノード「-link」の接続の間で使用される、この属性は無視することはできません。

各ノードのアーランクッキー値が各ノードを認証するための「キー」関数に同じ、この値の対応を使用しなければなりません。

クラスタ全体をディスクノードが含まれている必要があります。

15. RabbitMQのは、他のノードに各ノードの完全なコピーですのですか?なぜ?

いいえ、二つの理由:

収納スペースの考慮事項:

各ノードは、すべてのキューの完全なコピーを持っている場合は、そうではないだけでストレージ容量を追加するためにノードを追加し、より多くの冗長データを追加していません。

パフォーマンスの考慮事項:

あなたは、各クラスタノード、さらに悪い単一ノードまたは同じ性能を維持するために、メッセージを処理する能力を向上させていない新しいノードに各メッセージの完全なコピーが必要な場合。

16. RabbitMQのクラスタノードは、1つのディスクだけでは何が起こるクラッシュ?

専用ディスクのディスクノードがクラッシュした場合、次の操作を実行することはできません。

あなたは、キューを作成することはできません

あなたは、交換を作成することはできません

あなたは、バインディングを作成することはできません

あなたは、ユーザーを追加することはできません。

あなたは、権限を変更することはできません

あなたは、クラスタノードを追加および削除することはできません

唯一のディスクノードがクラッシュすると、クラスタが稼働して保持することができますが、何も変更することはできません。

それを停止するためで必要とされる17のRabbitMQクラスタノード?

RabbitMQのクラスタストップ注文が必要とされ、それはメモリノードをオフにし、最後に近いディスクノードする必要があります。順番が正反対である場合、それはメッセージの損失を引き起こす可能性があります。

国民の関心の猿社会のプログラム番号、顔の質問を取得するには、キーワード「インタビュー」をZK返信、ダボ、springboot、springcloud、mybatils、アポロおよびその他の技術。

 

公開番号:猿社会プログラム

毎週リアルタイム更新

おすすめ

転載: www.cnblogs.com/myworked/p/12123266.html