二11スパイク戦闘システムアーキテクチャ設計ソリューション

コンセプト

スパイク

       スパイクは何ですか?オンライン小売業者に関する人気事はリミットの推進のための組織の目的は、他のオンライン活動を購入しています

       例えば、Jingdongのスパイクは、スパイクに関わらず商品のスパイクが終了するスパイク活性のスクリーニングを完了したかどうかの、時間の指定された期間内に、配給の一種です。このスパイクは限りクイックスタートとして、秒の確率が非常に大きい、特に時間が重要ではありません。

       淘宝網は前に低価格をしながら、通常、限定された商品を購入する1元をした「髪の歯を起こす。」開始時刻のこのスパイクは、一般的なスパイクに参加するために、1-3秒を奪われていた一般的範囲内であります運の問題であり、あまりにも主張しません。

ビジネス機能

 

同時大きな過渡

       、スパイクラッシュ、10倍の量の急激な増加への瞬時の同時アクセスを同時に持っているよりも、100倍以上のユーザーが多数存在します。

少ない在庫

       一般的な商品のスパイク活動量が正常に商品を購入することができ、ユーザーのごく少数につながる、小さいです。

シンプルビジネス

       このプロセスは、通常、命令を受けて、在庫控除比較的単純で、注文を支払います

技術的な問題

 

既存事業のインパクト

       同じサーバー上にデプロイされたアプリケーションは、確かに他の既存の活動に影響を与える場合スパイクは、極端な場合には、全体の電力供給システムサービスのダウンタイムを引き起こす可能性があり、マーケティング活動であり、他のマーケティング活動

直接受注

       単一のページには、通常のURLアドレスで、スパイクの開始前に制御する必要はなく、順序、情報だけ対応する活動財を表示することができます。簡単に言えば、注文は無効]ボタンが必要です

交通ページの急激な増加

       スパイク活動の初め頃、多くのユーザーが存在します、対応する製品ページには、トラフィックのバックエンドサーバーの急激な増加の原因となる要求、ネットワーク帯域幅の増加に対応しながら、製品ページの流れを制御する必要がDB、Redisの他のコンポーネント、バックエンドサーバのあまりが発生することはありません圧力の

アーキテクチャの設計

 

限定的

       スパイク活動の在庫は、一般的にはほとんど対応しているので、成功をスパイクするために、ユーザーのほんの一部でした。これは、ほとんどのユーザトラフィックを制限することが可能で、ユーザーのほんの数は、バックエンドサーバーに流します

クリッピング

       その瞬間は、トラフィックの瞬間的なスパイクがあるだろうと、多数のユーザの影響があるだろうスパイク初めになるよう、来るようになりました。どのように瞬時流量をピークにすることは、より緩やかになり、それが良いデザインスパイクシステムの成功に重要な要因です。トラフィック負荷シフトを実現し、一般的に解決するためにキャッシュMQミドルウェアを使用するには

非同期な

       実際には、あなたは、ビジネスを行うから、互換性のあると考えることができ、この時点で処理するなどの並行性の高いシステムをスパイクすることができ、ビジネスが同期され、非同期処理タスクは、サイトの全体的な使いやすさを向上させるために設計されました

キャッシュ

       ボトルネックスパイクシステムは、主に下部注文、在庫控除処理を反映しています。これらのプロセスでは主にMySQLの、のSQLServer、Oracleへの同様のOLTPデータベースを使用。私たちのランダム書き込みの効率化に対応し、B +ツリーを使用して、基礎となるデータベースのストレージ構造以来、比較的低い読みください。我々はメモリキャッシュやRedisの中のビジネスロジックの部分に移動した場合、大幅に並行処理の効率を向上させます

全体的なアーキテクチャ

 

クライアントの最適化

       二つの主要なクライアントの最適化問題があります。

ページのスパイク

       スパイク活動の開始前に、実際には、多くのユーザーは、ページアップを訪れるがあります。サービスが利用できない場合でも、このようなCSS、JS、画像、商品説明などへのアクセスバックエンドサーバーを持って、DBとして、このページ上のリソースのいくつかは、確かに表示されます。だから、一般的に、私たちは、静的このページ全体を置くと、CDNエッジノードにページの後に静的なページを配布し、圧力を分散させる役割を果たしています

事前の注文を防ぐために、

       事前の注文を防ぐために、主に静的なページ、先頭に単一ページでの活動を始めているマークと動的URLパラメータを含むJSファイルで参照JSファイルを参加しました。JSファイルは非常に小さくなければならないので、同時に、JSファイルはCDNシステムにキャッシュされていない、それは、バックエンドのサービスを要求されていたであろう。(例えば、事前のような)活動の場合はクイックスタート、このファイルJSを変更するには、バックエンドインターフェースによってので、

最適化アクセスレイヤAPI

       クライアントは防ぐことができる生活の側面に従事していないコンピュータユーザーのために最適化されています。しかし、いくつかは少し効果なしに基づいてユーザーをネットワーク、サーバはまた、いくつかの対応コントロールを追加する必要があり、すべての操作は、クライアントを信頼することはできません。一般的な制御は、2つのカテゴリに分類されます

ユーザーのアクセス頻度の寸法を制限

       同じユーザー(ユーザーID寸法)については、ページ・レベルのキャッシュ、単位時間あたりの要求、統一キャッシュ行くと、同じページを返すを行います

アクセス頻度の寸法を制限します

       クエリの多くは同期間商品と要求すると、あなたがいる限り、このページはリターンを指示するよう、関係なく、次回を訪問しようとしている人の、ページ・レベルのキャッシュを行うことができます

SOAのサービス層の最適化の概要

       オペレータのスパイク活動が優れている場合には異常のみ上位2階には、ユーザーのアクセスを制限し、ユーザーの多くは、システムがバックエンドのフロー制御を必要とし、過度の圧力、あるいはダウンタイムの原因となります、で参加しています

       制御システムは、並行性を改善するために、メッセージ・キュー・バックエンド、非同期処理、等により解決することができます。要求の場合、「フェイルファスト」の原則に直接システム水ラインを超えて下落することを拒否

スパイク全体のフローチャート

 

       システム・コアは、フィルタの層を含む徐々に圧力過渡アクセスを減少させる、最終的なデータベースへの影響を低減するスパイク。あなたが代わりに最大の圧力を見つける上記のフローチャートの?

       データMQキューサービスの消費者量、限りMQキューがサービスに耐えられるよう、後者の控除の注文や在庫圧力が自分を制御することができる、データベース上の圧力に応じて、カスタムオーダーを作成することができ、消費者は、過度避けます、過度の圧力または直接データベースのダウンタイムをもたらします。

       インベントリサービスは売られ過ぎの現象を回避するために、前倒しの株式をロックし、スパイクの商品の在庫管理を提供する専門としています。同時に、商品の処理タスクをつかむために残業によって発見されているが、決済注文と支払い指定した時間、対応する商品の在庫を復元するために、これらのオーダーで注文を対処します

おすすめ

転載: www.cnblogs.com/spark9988/p/11512621.html