ネットワークリクエストにおけるトラフィック分散プロセス | JD Cloud テクニカルチーム

1. 概要

最新のエンタープライズ レベルまたはインターネット システムでは、多くの場合、透過的なマルチレベル分散を実現するためにトラフィック プランニングが必要になります。処理のためにクライアントからサーバーにトラフィックを送信するプロセスでは、機能的に無関係な技術コンポーネント (「透過的な分散」の目標を達成するために使用されるツールと手段) が流れます。クライアント キャッシュ、ドメイン ネーム サーバー、送信リンク、コンテンツ配信ネットワーク、ロードバランサー、サーバーサイドキャッシュ。透過的なオフロードによってもたらされる価値: 高可用性アーキテクチャと高い同時実行性。

この記事では主に、トラフィック計画におけるネットワーク要求プロセスと次のことを紹介します。

パート 1: ネットワーク リクエストのプロセスを簡単に紹介し、その後、これまでに学んだフロントエンド ネットワーク コンポーネントの配置方法とバックエンド ネットワーク コンポーネントの配置方法を紹介します。

パート 2: LB ロード システム、vip、rip 間のマッピング関係を紹介します。

パート 3: イントラネット ドメイン名解決とパブリック ネットワーク ドメイン名解決の紹介

2.ネットワークリクエスト処理

一般的なリクエスト プロセスとリクエスト プロセスの条件の説明は、https: //cf.jd.com/pages/viewpage.action ?pageId=766717554 から取得されます。

2.1 一般的なリクエストプロセス

2.2 リクエストプロセスにおける用語の説明

rip:実 IP、仮想マシンまたはコンテナの IP を指します

vip:仮想IP、コンピュータルームを越えることはできません、オンラインアプリケーション、ロード、自動検出およびその他の機能、パブリックネットワークvipとイントラネットvipに分かれています

イントラネット: 特にコンピューター室の内部を指します。厳密なファイアウォール ポリシーがあり、イントラネット間にファイアウォールはありません。アプリケーション間の相互アクセスの負荷分散を提供するイントラネット VIP を申請できます。イントラネット ≠ オフィス ネットワーク

オフィス ネットワーク:オフィス エリアのパーソナル コンピュータ ネットワーク、リバース プロキシを介したイントラネット コンピュータ ルーム アプリケーションへのアクセス

パブリック ネットワーク:インターネット ユーザー ネットワーク。DNS + パブリック ネットワーク vip を介してイントラネット コンピューター ルーム アプリケーションにアクセスします。

備考(私自身は理解しているので、正しく理解されていない可能性があります):

パブリック ネットワーク vip は、パブリック ネットワークの仮想 IP です。仮想とは、その IP がパブリック ネットワーク上で見つからないという意味ではありません。仮想は、サーバー IP (リップ) に関連しています。VIP は、ビジネス ロジックを直接引き受けません。

パブリック ネットワーク VIP はパブリック ネットワーク上に実際に存在し、イントラネット VIP は企業イントラネット上に実際に存在します。

2.3 フロントエンドネットワークコンポーネントの配置

参考リンク: http://jdthelp.jdos.jd.com/help/bestpractice/multi-web-demo.html

外部ネットワーク アクセスは、次の構造を満たす必要があります。 jen-nginx はフロントエンド メイン アプリケーションをプロキシするために VIP の背後にリンクされ、静的アプリケーション 1 ~ N は jen プロキシの背後にリンクされます。

テスト環境: 複数のフロントエンド プロジェクトは次のアーキテクチャを持つ場合があります: ドメイン名 -> VIP -> JEN エージェント (異なるドメイン名に従って異なるフォルダー内のファイルにアクセス) -> 静的アプリケーション

2.4 バックエンドネットワークコンポーネントの配置方法

バックエンドアプリケーションは呼び出し方法で2種類に分けられます(http呼び出しJSF呼び出し)

フロントエンド アプリケーション --- (プロトコル http または https) --- バックエンド フロントエンド アプリケーション -- (プロトコル jsf プライベート プロトコル) --- JSF マイクロサービス アプリケーション

バックエンド フロントエンド アプリケーション -- jsf マイクロサービス アプリケーション間の負荷はコンシューマによって決定されるため、通常、この 2 つの間の負荷に注意を払う必要はありません。

方法1:vip(LBロード系)+Nginxでロードする

方法 1 の注意事項:

VIP の下にサーバーを直接マウントできます。nginx が提供する機能 (ロードを除く) が必要な場合を除き、ここでは Nginx は必要ありません。

ロードのみに nginx を使用する場合は、nginx コンポーネントを削除してください。このコンポーネントを追加する必要はありません。グループの VIP の LB には既にロード機能が含まれているため、システムの複雑さを増やさないでください。

方法 2: コンテナー K8S レベルでロードする

vip から提供された LB:

vip が提供する LB はマシンの IP に直接接続されており、複数の IP 間のグループ化の概念はなく、検出メカニズムもありません

オンラインに接続するたびに、負荷がかかっているマシンを削除し、オンラインが完了したらマシンをハングアップする必要があります。

Xingyun デプロイメント - 高度な機能 - 負荷分散 ( コンテナー k8s レベルでの負荷 ) 利点:

マシンのグループ化の概念があります。コンピューター ルームまたはコンピューター ルーム + コンピューター ルーム クラスターの規模に従ってグループ化した後、各グループは独自の負荷分散を適用します。

プローブ メカニズムを使用する場合:健全なプローブ パスを設定し、負荷のプローブを実行します。オンラインにするたびに、負荷がかかっているマシンを削除する必要はありません。

3. LB ロードシステムの概要

実際、vip自体はipであり、実際の価値はあまりありません。VIP は、グループ LB ロード バランシングの入口 IP として理解でき、LB ロード バランシングは実際の分散コンポーネントです。

VIP はシステムによって自動的に割り当てられ、再利用されます (VIP リソースは貴重であり、システムによって割り当てられた VIP は再利用される可能性があります)。LB ロード バランシングには 2 つの分散ルールがあります。

1. 転用ルールの実装方法

シャント ルールを実装するには、デフォルト ルールと特別ルールの 2 つの方法があります。

デフォルト ルール: ドメイン名の場合、トラフィックはバックエンド クラスターに接続されます。これはテンプレートですので、適用範囲を選択できます。

専用ルール: VIP の場合、バックエンド クラスターを VIP に対して個別に指定できます。このうち、特別ルールが最優先となります。

デフォルト ルールと専用ルールの関係:

共通点 違い
デフォルト ルールにはドメイン名のポートに対して 1 つの転送ルールが 1 つだけあり、専用ルールには VIP のポートに対して 1 つだけの転送ルールがあります。 デフォルト ルールが存在する必要があります。専用ルールの優先度は高くなります。専用ルールが設定されていない場合は、デフォルト ルールが指すバックエンドが継承されます。

3.1 デフォルトのルール: デフォルトの分散ルール: ドメイン名 + ポート + クラスター、固有の分散ルール

備考: システムによって割り当てられた vip は再利用される可能性があります

デフォルトのルールでは、システムによって割り当てられた VIP はすべて 111.111.111 であると想定されます。

ドメイン名 A ( www.a.jdcom) +ドメイン名のポート port(80) は、構成された vip (111.111.111) を通じてバックエンド クラスター A に要求を転送します。

ドメイン名 B ( www.b.jd.com ) + ドメイン名のポート port(443) は、構成された vip (111.111.111) を介してバックエンド クラスター B に要求を転送します。

3.2 専用ルール: vip に面するポートにはシャント ルールが 1 つだけあります。

注: (確信はありません): 専用ルールの VIP は多重化されない可能性があります。

注: VIP は、HTTP は 80 と 443、TCP は 2000 ~ 2014 など、複数のポートを使用することもできます。

4. vip と rip 間のマッピング関係 (非常に重要)

1対1: 1つのコンピュータルーム、1つのVIPが1つのリップに対応

1対多: 1つのコンピュータルーム、1つのvipが複数のリップに対応

多対多: 複数のコンピューター ルーム。各コンピューター ルームの vip はコンピューター ルームの下の複数のリップに対応します。

4.1 vip の下にリップをマウントする規則

  1. vip(コンピュータ室入口)はコンピュータ室の次元にあります、もちろんvipに問題があれば、それは一般にコンピュータ室に問題があり、その可能性は比較的低いでしょう。

  2. VIP はコンピュータ ルームの次元内にありますが、どのマシンが VIP に接続されるかは研究開発担当者によって決定されるため、VIP の下にあるマシンはコンピュータ ルームを横切る可能性があります。ただし、研究開発担当者は、コンピュータルームビュー( マシンのコンピュータルームの位置)に従って、 この場所のコンピュータルーム入口( vip )に対応し 、可能な限りこの規則に従う必要があります。

4.2 なぜこの協定を遵守する必要があるのですか?

1. 問題の範囲をできる限り最小限に抑える: VIP 下のマシンが複数のコンピュータ ルームにまたがる場合、VIP に問題があると、複数のコンピュータ ルームのマシンはトラフィックを受信できなくなります。

2. ネットワーク切断訓練の目標を可能な限り一致させます: コンピュータ ルームでのネットワーク切断訓練では、VIP がトラフィックを次の層に進入させないと推定されます。 VIP の場合、コンピュータ ルーム内のネットワーク切断訓練が直接コンピュータ ルーム間訓練になります (複数のコンピュータ ルームのマシンはトラフィックを受信しないため)。

5. イントラネットのドメイン名解決(コンピュータ室の様子とコンピュータ室の入り口の説明)

  1. イントラネット ドメイン名解決: VIP はコンピュータ ルームの(現在、廊坊 VIP 馬居橋 VIP とインドネシア VIP があります) 。

  2. 各ビューを解決する必要があります。廊坊ビュー -> 廊坊 VIP、麻珠橋ビュー -> 麻珠橋 VIP、その他のビュー -> 麻珠橋または廊坊 VIP を選択 (利用可能なオンライン VIP を指定する必要があります)

  3. コンピュータ ルームへのアクセスを最適化するために、コンピュータ ルームの VIP が優先されます。

  4. 古いコンピュータ室がすでに棚から撤去されているか、撤去されつつあることを考慮すると、古いコンピュータ室には廊坊と馬居橋の VIP が優先され、外国のアプリケーションには外国の VIP が優先されます。

6. パブリックドメイン名の解決

ポップ エントリはコンピュータ ネットワーク内にあり、ポップはネットワーク アクセス ポイント (ポップ) を意味します。ポップはネットワーク企業のエッジの外側に位置し、企業ネットワークにアクセスするためのエントリ ポイントです。外部の世界から提供されるサービスは、ネットワーク アクセス ポイントを介して侵入します。これらのサービスには、インターネット アクセス、広域接続、電話サービス (PSTN) が含まれます。

ポップ エントリ: 新しいアプリケーションがオンラインになると、ポイント オブ プレゼンス (ポップ) で VIP を申請する必要があります。

DNS:

VIP は不要:自分のパブリック IP を直接入力します

VIPが必要:

  1. VIPはPOP入口にて事前にお申込みください

  2. 解析する前に、ホストをオフラインにバインドして、VIP サービスの可用性をテストしてください。

  3. オペレーターに応じたPOP入口VIPに応じて分析

7. まとめ

単純なリクエスト プロセスが最も実用的であり、実際的なリクエスト プロセスが最も簡単です。

シンプルで実用的なマッチング方法を使用してトラフィック分散を実現し、ランダムに組み合わせてシステムの複雑さを増大させないでください。

著者: JD Insurance 張江濤

出典: JDクラウド開発者

{{名前}}
{{名前}}

おすすめ

転載: my.oschina.net/u/4090830/blog/9770570