私はRabbitMQのは本当に岩で、吹きませんでした!

テキストの強力な、自由端の多くの事業で導入した後、10ヘビー級帳を送信するためにRabbitMQの今日は、お見逃しなく!

RabbitMQのは、本番環境でアプリケーションの非常に広い範囲を有し、ミドルウェア、非同期通信、サービスデカップリング、インターフェイスを制限する、メッセージ配信サービス遅延および機能を処理する分散メッセージを配信するための高性能ストレージとして実現することができます図に示すような特性をまとめることができます。


図1のRabbitMQの役割

これは、RabbitMQのは、それがシステムの実用化で場所を持っていますので、多くの機能を持っているので、このセクションは、一般的なアプリケーションシナリオをRabbitMQの内容を説明しています。

1。切り離されたと非同期通信サービス

実際のシーンのための「ユーザー登録」、従来のエンタープライズアプリケーション処理ユーザ登録プロセスは、最初に関連する情報を提出し、「登録」ボタンをクリックし、確認した後、電子メールや電話番号など、ユーザーインターフェイスの情報を、ユーザー名を入力します。 。

この情報は、関連するインターフェースプロセスの後端部の前端部に提出され、情報の後端を受け取った後、それはデータベース関連のデータテーブルに情報を書き込みした後、検証に成功した、基本的な情報のチェックをさせて頂きます、ユーザーの安全を登録するために、前にユーザの正当性が提供するメッセージ、または検証するためのユーザインタフェースにSMSの確認コードを送信するSMSサービスを呼び出すことにより、最終的に応答情報の背中を送信するためにバックエンドのメールサーバ・インタフェースを呼び出しますユーザとプロンプト「登録成功」、図2に示される全体のプロセス。


2つの従来のエンタープライズアプリケーションのユーザ登録処理

彼らは「長い」の待ち時間を通過する必要があり、関連する情報を提出し、「登録」ボタンをクリックすると、ユーザーの後、図2のプロセスからわかるように、全体的な待機時間は約ある「ライト・データベース」+「メールアドレスの検証」+ "に等しいです処理時間のSMS確認」。プロセスがメールに表示され、ビジネスロジックの例外にテキストメッセージを送信した場合、全体のプロセスが終了すると、このアプローチは、現在のインターネットユーザーにはほとんど受け入れられないことは明らかです!

ユーザ登録のプロセス全体を慎重に分析、難しいことではありません「データベースにユーザ登録情報および情報の正当性を判断する」と「送信済みメール」と「SMSの確認」サービスとある程度までに、そのコアビジネスロジックを見つけるために「ユーザ登録」コアプロセスに起因する、図1に示すような対応するサービスは、RabbitMQのような非同期通信のためれ、そして使用メッセージミドルウェアから分離されるとは限りません。


ユーザ登録メッセージミドルウェアのRabbitMQの流れを導入した後、図3

RabbitMQのは、達成するために、「最後に行くには1行」ビジネス・サービス・モジュールは、切り離された、システム・インタフェースの全体的な応答時間も大幅にある多くのことを、低減されの導入を見ることができる「低レイテンシーを。」ユーザーの観点から、これはユーザーに良い経験に影響を与えるだろう。

2。電流制限およびメッセージ配信インターフェース

ユーザーを引き付けるために、例えば、「アップ購入するユーザー・モール」、モールのトラフィックを開始する前に活動を購入する際、随時購入活動のオンラインストアホット商品に開催される、通常のイベントを待っている画面の前で見詰める「待機中」のようなユーザー最初に、起因する商品の限られた数の活動の開始は、ほぼすべてのユーザーが同時に商品を買っ開始するには、「購入」ボタンをクリックしますと、全体的なプロセスは、図4に示します。


図4、商品の購買モール従来のプロセス・フロー・アクティビティ

疑いの余地はほとんど同時にバックエンド・システム・インタフェースにこれらの要求は、それは巨大なユーザーの購買トラフィックを持つことになり、活動を購入開始するその瞬間に、あります。通常の状況では、フロントエンドによって送信された要求を受信すると、バックエンド・システム・インターフェースは、以下の手順が実行されます。

最初に十分な場合は、現在のユーザーに代わって、現在の製品在庫の妥当性を判断します、による検証後、ユーザー情報や商品の正当性をチェックするに成功し商品を購入することができるようになります、最後に成功したユーザ関連データをスナップデータベースに記録され、ユーザーの買いの成功と非同期通知は、できるだけ早くなどとして支払いを行います。

しかし、慎重な分析によって、「長すぎる」全体的な購買業務プロセスインタフェースのバックエンド処理システムのユーザは、このプロセスのビジネス・ロジック・ブロックでは、最初の株式の決意が取られた後、最終的に減らさ更新は、高い同時実行の場合には、これらのビジネス・オペレーティング・システムは、多くの問題をもたらすでしょう。例えば、商品の売られ過ぎ、一貫性のないデータは、ユーザーがその上に長い時間、ハングインターフェースシステムとを待ちます。フロントエンドの唯一のプロセスフロー量が同時にいくつかの例を要求するようになって、この場合はそうはなく、買いモールと同様に、他の商品時点での同時要求がぼろぼろされ、高いスパイクを生成します。

RabbitMQのメッセージングミドルウェアが導入される導入RabbitMQの後の全体的な処理システムの図5に示すように大きく、全体的なシステム性能およびビジネスプロセスを改善することができます。


図5商品の購買モール従来のプロセス・フロー・アクティビティ

図5から分かるように、RabbitMQのは、以下の2つの側面からの全体的な処理システムを最適化するために主に導入しました。

1)制限インターフェース:現在のハイエンド生成同時要求、およびない「ヘッドレス」は、すぐにシステムインタフェースとして後端部に到達したが、同じで、毎日の地下作業を限定するものとして、最初の規則に従ってこれらの要求を務め最初に来るように達成するための方法で、すなわち、RabbitMQのキューを追加「制限インターフェイスを。」

十分な商品在庫は、現在のユーザーが、この製品を購入つかむことができるようになりますと、ユーザーの購入の成功を通知するなど、SMS、電子メールを送信することにより、非同期に従うべきを、そしていくつかでは、できるだけ早く支払いをユーザに知らせること:2)非同期にメッセージを配布します「非同期メッセージを配布する」程度を達成するために。

3)遅延処理事業

RabbitMQのに加えて、いくつかのビジネスシナリオで循環リアルタイム非同期メッセージを達成することができ、また、メッセージの遅延と遅延処理を実現します。一例として、「春祭り12306ラッシュチケット」を以下に示します。私たちは12306グラブは、ソフトウェアの得票グラブチケットを使用したときの春祭りは、信じているチケットは読者に精通していないラッシュ、12306関係者は、「30分以内にしてください支払う。」ユーザーを思い出させます ユーザーは直ちに通常の状況下で支払い、その後、有料有料に列車の切符の価格を適切なパスワードを入力します。控除が成功した後、12306関係者は、ユーザーおよび支払グラブ票成功を知らせるために、電子メールやテキストメッセージを送信します。

しかし、実際にそのようなグラブのチケットへのユーザーの後など、いくつかの特別な事情が存在するが、様々な理由のために、まだ自動的に注文の合計をキャンセルするシステム原因、チケットを支払われていない30分後に価格以上の支払いには至っていません。これは、ビジネスが実際の運用環境では珍しいことではありません「操作を行う前にいくつかの時間遅延を必要とする」と似ている、このような処理の事業のための従来のエンタープライズ・アプリケーションは、支払いの受注を得るように調節されていないタイマーを使用することであり、現在時刻からのユーザーの注文かどうかを決定することは、30分を超えている、と、ユーザーはまだ30分以内に支払われていない場合、システムが自動的に故障し、ペンの注文を回復チケット、図におけるビジネスプロセス全体の原因となります。6図。


6グラブ30分以内に、チケットの不払いの成功の後、伝統的なプロセスフロー

春祭りのラッシュチケットは一定の時間があり、大量のデータ、高同時要求のシーン、開くには一定の時間、チケットのラッシュの後、通常の状況下では、チケットをつかむために、ユーザを持ち続けるだろうが、成功したから、チケットの支払いとして見ることができますインターバル。

この間、タイマーがデータベースしばしば「不払い」注文状況、そのハードから取得した場合、一般的なデータの量を想像し、する場合は、データベースから30分以内の支払におけるユーザーの遅れ、大量のそれが一定のレベルに達したときに取得したデータの量が増加している、データベース・サーバとアプリケーションサーバは、多大な圧力をもたらすでしょう、といくつかのも、直接サーバーを圧倒、ラッシュチケット、ボード上の他のサービスの崩壊につながる、直接結果は悲惨なことでしょう!

初期のラッシュチケットソフトウェアの多くはいつでもキャッチ春祭りの旅行のピーク期間、いくつかの点で高い同時実行が生成部分であるため、多くの場合、「クラッシュサイトは」「のチケットを購入するためにクリックすると、無応答、」その他の条件されていません、又はしばしば過度の負荷、メモリ、CPU、ネットワーク、データベースサービスにつながるなど、データの過負荷状態を取得タイミングプルデータベース。

RabbitMQのは、それが大幅に改善されたビジネス・レベルまたはアプリケーション・レベルのパフォーマンスからのものであるかどうか、ミドルウェアメッセージングの導入は、ミドルウェア図メッセージング7のRabbitMQの導入後に「成功グラブ後の処理フローは、30分以内に未払い投票します」最適化。


チケットの成功は30分以内に支払われていない後7グラブは、プロセスフローを最適化

それは、最適化プロセスからわかるように、主に導入されたのRabbitMQは「タイマ処理ロジック」従来のプロセスフローを置き換え、処理のために導入RabbitMQの遅延キューに置き換え。定義手段によって遅延キューは、一定の時間遅延は、再処理することができることを、対応するビジネスロジックを。

特定のシナリオでは、この機能のRabbitMQのは、確かに、このような「不払いの30分以内に成功したグラブのチケットの後に処理フロー」の上に話すように、良いの役割を果たすことができる代表的なものです。また、ショッピングモールは、「賃金にクリックして、所定時間にまだ以内に支払われる」とき「次のシングルのお支払いの成功の後に指定された時間内にまだ」-奪うのポイントは、プロセスの流れのプロセスを治療は、実際の生産環境、より一般的なシナリオです。

上記のシナリオに加えて、他のビジネスシナリオにRabbitMQのも、幅広いアプリケーションを持っている上、ここで列挙されません!

機械工業出版社から適応「分散ミドルウェア技術の戦闘(Javaバージョン)、」プレスリリースによって発行されました。あなたが読むために本を購入するには、以下のクリックすることができ、読者の内容を学ぶ必要があります。

寄贈福祉

Javaミドルウェアの多くの国内書籍市場の図書が、典型的なビジネス・モジュールとケースの本の様々なを通じて発展のレベルを向上させるために読者を導くために、実際のプロジェクトに基づいてビューの初心者の視点から本当のは、いくつかあります。

分散ミドルウェア技術の戦闘(Javaバージョン)が」必要な理論的な知識を持って、メインと闘うことで、中に理論と実践的なビジネスシナリオのキーポイントの知識を含めて、いくつかの人気の分散ミドルウェアを紹介実際のプロセス、読者がほとんどそれによって実際の開発と事業戦闘能力のレベルを向上させる、一般に使用されるミドルウェアJavaエンタープライズアプリケーション開発のさまざまな学習するゼロからステップバイステップでできるようになります。

その本が無料で入手する方法?

次の資料番号が参加する公共のリンクをクリックしてください。
https://mp.weixin.qq.com/s/0DC1F1Vuq--ZaKDX_oXt7w

私は続きを読むには私のブログにお勧めします:

1. JavaのチュートリアルのJVM、コレクション、マルチスレッド、新シリーズ

2. Spring MVCの、ブーツ春、クラウドチュートリアルの春シリーズ

3. Mavenの、Gitは、Eclipseの、IDEAのIntelliJツールチュートリアルシリーズ

4. Javaの、バックエンドアーキテクチャは、アリババと他のメーカーは、新たな疑問に直面します

人生は美しいです、〜明日見ます

おすすめ

転載: www.cnblogs.com/javastack/p/12541292.html