-
-
-
VMware ESX、Linux KVM、およびCitrix HypervisorでNetScaler ADC VPXのパフォーマンスを最適化する
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
ユースケース2:TCPバイトストリームの名前と値のペアに基づいて規則に基づくパーシステンスを構成する
-
-
-
-
This content has been machine translated dynamically.
Dieser Inhalt ist eine maschinelle Übersetzung, die dynamisch erstellt wurde. (Haftungsausschluss)
Cet article a été traduit automatiquement de manière dynamique. (Clause de non responsabilité)
Este artículo lo ha traducido una máquina de forma dinámica. (Aviso legal)
此内容已经过机器动态翻译。 放弃
このコンテンツは動的に機械翻訳されています。免責事項
이 콘텐츠는 동적으로 기계 번역되었습니다. 책임 부인
Este texto foi traduzido automaticamente. (Aviso legal)
Questo contenuto è stato tradotto dinamicamente con traduzione automatica.(Esclusione di responsabilità))
This article has been machine translated.
Dieser Artikel wurde maschinell übersetzt. (Haftungsausschluss)
Ce article a été traduit automatiquement. (Clause de non responsabilité)
Este artículo ha sido traducido automáticamente. (Aviso legal)
この記事は機械翻訳されています.免責事項
이 기사는 기계 번역되었습니다.책임 부인
Este artigo foi traduzido automaticamente.(Aviso legal)
这篇文章已经过机器翻译.放弃
Questo articolo è stato tradotto automaticamente.(Esclusione di responsabilità))
Translation failed!
ユースケース2:TCPバイトストリームの名前と値のペアに基づいて規則に基づくパーシステンスを構成する
プロトコルによっては、名前と値のペアを TCP バイトストリームで送信します。この例の TCP バイトストリームのプロトコルは、財務情報交換 (FIX) プロトコルです。XML以外の実装では、FIXプロトコルにより、ネットワークを介して通信する2つのホストが、名前と値のペア(「FIXフィールド」と呼ばれる)のリストとしてビジネスまたは取引関連の情報を交換できます。フィールドの形式は<tag>=<value><delimiter>
です。この従来のタグ値形式により、FIX プロトコルはユースケースに最適です。
FIXフィールドのタグは、フィールドの意味を示す数値識別子です。この例では、
- タグ 35 はメッセージタイプを示します。
- 等号の後の値は、指定されたタグの特定の意味を保持し、データ型に関連付けられています。タグ 35 の値が A の場合は、メッセージがログオンメッセージであることを示します。
- 区切り文字は、印刷されない「ヘッダーの開始」(SOH) ASCII 文字 (0x01) で、キャレット記号 (^) です。
- 各フィールドには名前も割り当てられます。タグ 35 のフィールドは MsgType フィールドです。
ログオンメッセージの例を次に示します。
8=FIX.4.1 9=61 35=A 49=INVMGR 56=BRKR 34=1 52= 20000426-12:05:06 98=0 108=30 10=157
上記のようなタグ値リストのパーシスタンスタイプの選択は、リストから特定の文字列を抽出するために利用できるオプションによって決まります。トークンベースの永続性メソッドでは、ペイロードから抽出するトークンのオフセットと長さを指定する必要があります。FIX プロトコルでは、特定のフィールドのオフセットとその値の長さがメッセージによって異なる可能性があるため、これを行うことはできません。この変化は、メッセージタイプ、前のフィールド、および前の値の長さによって異なります。また、カスタムフィールドが定義されているかどうかによって、実装によっても異なります。このようなバリエーションにより、特定のフィールドの正確なオフセットを予測したり、トークンとして抽出される値の長さを指定したりすることは不可能になります。この場合、ルールベースの永続性が優先されるパーシステンスタイプです。
仮想サーバー fixlb1 が、Fix 対応アプリケーションのインスタンスをホストしているサーバーのファームへの TCP 接続の負荷分散を行うと仮定します。メッセージを送信する会社を識別する SenderCompid フィールドの値に基づいて、接続の永続性を構成します。この FIX フィールドのタグは 49 です (前述のログオンメッセージの例に示されています)。
負荷分散仮想サーバーのルールベースの永続性を構成するには、負荷分散仮想サーバーの永続性タイプをRULEに設定し、式を使用してルールパラメーターを構成します。式は、TCP ペイロードの senderCompid フィールドが見つかるはずの部分を抽出し、結果の文字列を区切り文字に基づいて名前と値のリストに型キャストし、SenderCompid フィールドの値 (タグ 49) を次のように抽出する式でなければなりません。
set lb vserver fixlb1 -persistenceType RULE -rule "CLIENT.TCP.PAYLOAD(300).TYPECAST_NVLIST_T('=','^').VALUE("\49\")"
注:これは CLI コマンドなので、式にはバックスラッシュ文字が使用されています。設定ユーティリティを使用している場合は、バックスラッシュ文字を入力しないでください。
クライアントが前述のログオンメッセージ例の名前と値のリストを含むFIXメッセージを送信すると、式によってINVMGRの値が抽出され、NetScalerアプライアンスはこの値に基づいて永続セッションを作成します。
PAYLOAD () 関数の引数は、関数によって抽出された文字列に SenderCompID フィールドを含めるために必要な大きさにすることができます。オプションで、フィールドの値を抽出するときにアプライアンスで大文字と小文字を区別する場合は、SET_TEXT_MODE(IGNORECASE)関数を使用し、抽出された値のハッシュに基づいて永続セッションを作成するために HASH 関数を使用できます。次の式では、SET_TEXT_MODE (IGNORECASE) 関数と HASH 関数を使用します。
CLIENT.TCP.PAYLOAD(500).TYPECAST_NVLIST_T('=','^').SET_TEXT_MODE(IGNORECASE).VALUE("49").HASH
FIX 接続のパーシステンスを設定するために使用できるルールの他の例を以下に示します ( <tag>
値を抽出したいフィールドのタグに置き換えてください)。
- TCP ペイロードの最初の 300 バイトにある任意の FIX フィールドの値を抽出するには、CLIENT.TCP.PAYLOAD(300).BEFORE_STR(“^”).AFTER_STR(“
<tag>
=”).という式を使用できます。 - オフセット 80 で 20 バイトの長さの文字列を抽出するには、その文字列を名前と値のリストにキャストしてから、必要なフィールドの値を抽出します。CLIENT.TCP.PAYLOAD(100).SUBSTR(80,20).TYPECAST_NVLIST_T(‘=’,’^’).VALUE(“
<tag>
“)という式を使用します。 - TCP ペイロードの最初の 100 バイトを抽出し、その文字列を名前と値のリストにキャストし、必要なフィールドが 3 番目に出現する位置の値を抽出するには、CLIENT.TCP.PAYLOAD(100).TYPECAST_NVLIST_T(‘=’,’^’).VALUE(“
<tag>
“,2)という式を使用します。 注: VALUE () 関数に渡される 2 番目の引数が n の場合、カウントはゼロ ( 0) から始まるため、アプライアンスはフィールドの (n+1)<sup>th</sup>
インスタンスの値を抽出します。
パーシスタンスの設定に使用できるルールの他の例を以下に示します。FIX プロトコルを介して送信されるデータを評価できるのは、ペイロードベースの式だけです。他の表現は、下位ネットワークプロトコルに基づいてパーシステンスを設定するための、より一般的な表現です。
- CLIENT.TCP.PAYLOAD(100)
- CLIENT.TCP.PAYLOAD(100).HASH
- CLIENT.TCP.PAYLOAD(100).SUBSTR(5,10)
- CLIENT.TCP.SRCPORT
- CLIENT.TCP.DSTPORT
- CLIENT.IP.SRC
- CLIENT.IP.DST
- CLIENT.IP.SRC.GET4
- CLIENT.IP.DST.GET4
- CLIENT.ETHER.SRCMAC.GET6
- CLIENT.ETHER.DSTMAC.GET5
- CLIENT.VLAN.ID
共有
共有
この記事の概要
This Preview product documentation is Cloud Software Group Confidential.
You agree to hold this documentation confidential pursuant to the terms of your Cloud Software Group Beta/Tech Preview Agreement.
The development, release and timing of any features or functionality described in the Preview documentation remains at our sole discretion and are subject to change without notice or consultation.
The documentation is for informational purposes only and is not a commitment, promise or legal obligation to deliver any material, code or functionality and should not be relied upon in making Cloud Software Group product purchase decisions.
If you do not agree, select I DO NOT AGREE to exit.