ミドルウェア100%が失われていない(1)[ノート]アーキテクチャフペルジンメッセージングフルリンクデータを確保する方法

**インターネットインタビューキル:ミドルウェア100%(1)[ノート]アーキテクチャヒューペルジン失われていないメッセージングフルリンクデータを確実にするためにどのように
個々の公衆番号への歓迎の注意:ヒューペルジンアーキテクチャノートを(ID:shishan100)

月曜〜金曜、午前8時30!時間に送信されブティック技術記事!

1、背景導入
メッセージングミドルウェア技術、どのようにデータが失われることはできません確実にするために、最終的に前面から背面への完全なリンクを使用している場合、この記事のを、オンライン本番環境についての話をしましょう。

この問題は、インタビューのためのインターネット会社の際に高周波を発生するだけでなく、非常に現実の生産環境。

あなたの履歴書は(RabbitMQの、RocketMQ、カフカ)自分の使い慣れたMQテクノロジーを書き、そしてプロジェクトの経験を持っている場合には、非常に現実的な生産環境の質問です:MQにメッセージを配信し、その後、MQの消費者のニュースに対処しますこのプロセスは、最後にデータが失われることはありません。

この時点で、インタビュアーが要求されます:データが失われた場合、その後、あなたはプロジェクトの生産を展開するときに、100%のMQベースのデータ伝送が失われることはありません確実にするために何を意味するのかでありますか?トラブルあなたが特定の技術的解決策についての話に使わオンラインメッセージングミドルウェアを組み合わせました。

実際には、これは候補者の面接の質問の技術レベルとの間に非常に区別があります。

実際には、それは単にそれが可能なコードを満たすものを使用して展開MQクラスターに基づいており、インターネットを通じて、中小企業での仕事にある場合でも、通常の技術者のかなりの割合が、消費メッセージと送信メッセージの基本的なレベルではなく、基本的には持っていました技術的な解決策についてはあまり考えています。

しかし、実際には、MQ、キャッシュ、サブライブラリーのサブテーブル、NoSQLの技術やミドルウェア、使用中の様々なタイプの他の種類のために、技術関連の環境問題に対応した生産の束があるでしょう。

そして、これらの問題を解決するため、我々は、システムの堅牢性、安定性、および高い可用性を確保するための技術的な解決策の対応するセットを持っている必要があります。

MQを使用すると、データの損失の問題を含むことになる際に面接時に面接、実際に大規模なインターネット企業の候補者は、関連する技術のMQ研究の経験と熟練場合は、すべての可能性では、これはスローされます。この問題のため、非常に優れた技術レベルの候補者を区別することが可能です。

この記事だから、私たちは、このRabbitMQのメッセージング・ミドルウェアの特定のコンテキストに基づいて話しましょう、MQ、データ損失のリスクポテンシャルと、このプロセスからのメッセージを消費するため、MQからのメッセージを伝えました。

その後、我々は、データが失われないことを確認するためにMQの提供自体の技術的な特徴のいくつかを組み合わせた方法を見てみましょうか?

図2に示すように、先行詞がリコール
いくつかの新しい学生はまた、MQ関連技術を理解していない可能性があること皆に思い出させるためにまず、それが基本的な原則とMQの使用を見て、記事の前のMQシリーズを見てお勧めします。

あなたは、システムのアーキテクチャは、ミドルウェアメッセージング導入すべきであるのはなぜ「シリーズの高度なJavaのインタビュー1」?

「高度なJavaのインタビューシリーズII」システム・アーキテクチャは、メッセージングミドルウェアを導入デメリットは何ですか

ミドルウェアメッセージングでは、プロジェクト内の「高度なJavaのインタビューシリーズ三は、」どのように着陸のですか?

また、我々の前に実際には二つの記事は、データ損失の問題のミドルウェアメッセージングで説明されていました。

私たちは、データの損失を引き起こす可能性があり、突然ダウンし、消費者からだった、と突然の崩壊をクラスタリングデータは、データが失われることはありませんどのように説明した2つの角度の損失につながる可能性があります。

:しかし、のみ2つのプログラムが完全なリンクデータが失われることはありませんが、私たちが提案Esenルックバックを見ていない場合は保証するものではありません

心にカット!オンラインサービスがダウンしているときに失われることはありません、どのように100%のデータを確保するには?

メッセージングミドルウェアクラスタクラッシュし、百万生産データが失われないことを確実にするためにどのように?

要するに、私たちは、学生は最初のシリーズに精通した者の前に、MQに慣れていないし、次にMQデータが失われない100%と体系的に一緒に来るする方法を見て欲しいです。

3は、技術的な解決策があり
、消費者が自分の直接の処理を完了するためのメッセージ、ありませんでした時間がダウンして取得した後、今、我々は最初の場所を取った知って、前の記事の議論を通じて、あること、データの損失を引き起こす可能性があります。

この時点でのRabbitMQで自動ACKメカニズムは、このメッセージはうまく処理されたMQクラスタを通知します、MQクラスタは、このメッセージを削除します。

したがって、このメッセージは、それを失うことはないのですか?これは、このニュースを処理するための任意の消費者を持っていません。

私たちは、メッセージが正常に終了処理を持たなければならないことを保証するために、手動で消費者サービスにACKメカニズムを調整することで、詳細に議論する前に、ACK通知はMQクラスタに送信されます。

それ以外の場合は、ダウンACK送信前には、顧客サービスは、この時間MQクラスタが自動的に認識されません、その後、他の消費者サービスインスタンスへのメッセージを再送信します。

心にカット!オンラインサービスがダウンしているときに失われることはありません、どのように100%のデータを確保するには?

この記事では詳細に問題を議論し、以下のように、手動ACKメカニズム下アーキテクチャ図です。

これはつまり、データ損失の問題に加えて、別の問題がありました、MQクラスタ自体突然ダウンした場合、ありませんが、それはデータの損失につながるのですか?

メッセージ・キューと配信への持続的なアプローチの使用は、そうMQクラスタの再起動データの一部消失につながるしない可能性があるため、デフォルトでは確かにあります。

メッセージングミドルウェアクラスタクラッシュし、百万生産データが失われないことを確実にするためにどのように?

この記事では、我々はメッセージのMQクラスタがディスクアップに永続化されますMQクラスタにメッセージを配信するために、永続的な方法を使用しながら、持続的な方法の使用は、キューを作成する方法を分析しました。

メッセージは、消費者サービスを提供する時間がなかった、と突然MQクラスタがダウンした場合、自動的にディスクからロードMQクラスタの再起動が発信メッセージを配信し、その後配信を続け、まだアウトファイルので、この時間の後、データは、失われることはありません消費者へのサービス。

次のようにも、図1のシステムアーキテクチャのプログラムは、沈殿しました。

図4は、データの100%はまだ失われていませんか?
私たちのアーキテクチャは、データがまだ失われていないことを確認することができるようになります、これまでのところ、それについて考えてみようか?

実際、本フレームワークは、データの問題が失われる可能性が依然として存在しています。

つまり、メモリ内のMQクラスタに配信されるメッセージのプロデューサー、まだMQの存在ではなく、十分なディスクに永続化するだけでなく、消費者がストレージ・サービスを提供する時間がなかったとして、上記のようにサービスの注文後。

MQクラスタ自体が突然ダウンした場合は、この時点では、それが行うことになって?

その恥ずかし、次の図で見てみましょうが失われますメモリ内のデータが存在します。

5、技術的なソリューションの開発が求め
今、技術的な解決策は、我々は検討する必要があります:オーダーサービスにメッセージをディスクに保存しておく必要がありますことを確認するために、どのように?

ニュースサービスの受注生産はMQクラスタプロセスに配信として実際には、それは非常に簡単に失うデータにあります。

たとえば、ネットワークに障害が発生したもののいくつかがあり、データがディスク上に、衰退を単に以上転送されませんでしたか、単にメッセージがちょうど受信された上で言うが、MQは、メモリに常駐し、この時間MQクラスタのダウンタイムは、データを失うことになります。

だから、最初、私たちは、RabbitMQのは、技術的なソリューションを実装するために、関連する機能を提供してどのように使用するサービス生産者への注文として考慮する必要があります。

長いメッセージがサービスの成功を確認するために注文を送ったとしてとして、それはMQクラスタメッセージがディスクに永続化されている必要があります:技術的な解決策があることを保証するために必要。

私たちは失われないMQクラスタデータへの配送を保証するために、このような効果を達成しなければなりません。

図6は、技術的な詳細は勉強する必要がある
サービスマニュアルACKが失われていないデータの原則の実現を保証する倉庫:我々はしている研究に必要な、ここでは技術的な詳細を。

前に、私は質問をする学生の多くを受けていました。

最後にサービスを倉庫には、作品が失われていないマニュアルACKデータに基づいて実現することができる方法ですか?RabbitMQのが最後に達成基礎となる内容と原則は何ですか?倉庫保管サービス上でACK送信できないのはなぜダウンし、RabbitMQのは自動的に彼を認識し、その後、自動的に他の倉庫のサービスインスタンスにそれをメッセージを再送することができますか?

最後に、原則として、これらの事の背後にある根本的な詳細は、何ですか?

みんなShaoanwuzaoは、その後、私たちは、この背後にある論理的根拠については非常に慎重に見て、一連の記事を渡します。

エンド
収穫もし、あなたに感謝し、あなたの励ましが最大のモチベーションの著者である、前方に助けてください!

大型マイクロ波サービス、分散、高い並行性、元の一連の高可用性は、道を進んでいます

次のFanger魏コード、持続的注意をスキャンするためにようこそ:**

公開された100元の記事 ウォン称賛12 ビュー10000 +

おすすめ

転載: blog.csdn.net/hmh13548571896/article/details/104106694