プロトコル拡張 - ユーザー定義TCPクライアントとサーバーの動作のトラフィックパイプライン
次の図は、サンプルプロトコル拡張(ユーザー定義の TCP クライアントとサーバーの動作用のトラフィックパイプライン)を示しています。
プロトコル拡張を使用してカスタムプロトコルを追加する
カスタムプロトコルのコマンドラインインターフェイス (CLI) コマンドでは、「user」というキーワードを使用して、基礎となる構成エンティティがユーザー定義であることを表します。拡張コードを使用すると、システムに新しいユーザープロトコルを追加したり、ユーザー定義プロトコル用のユーザー仮想サーバーを追加したりできます。ユーザー仮想サーバーは、パラメーターを設定することで順番に設定できます。仮想サーバーパラメーターの設定値は、拡張コードで確認できます。
次の例は、新しいプロトコルのサポートを追加するためのユーザーフローを示しています。この例では、MQTT プロトコルのサポートをシステムに追加しています。MQTT はマシン間の「モノのインターネット」接続プロトコルです。これは軽量なパブリッシュ/サブスクライブメッセージングトランスポートです。遠隔地との接続に便利なこのプロトコルは、クライアントとブローカーのツールを使用してメッセージをサブスクライバーに公開します。
-
MQTTプロトコル拡張実装ファイルをNetScalerシステムにインポートします。mqtt.lua のコードリストは以下の通りです。以下の例では、Web サーバーでホストされている MQTT 拡張ファイルをインポートします。
import extension http://10.217.24.48/extensions/mqtt.lua mqtt_code
-
拡張機能を使用して、新しいユーザーTCPベースのプロトコルをシステムに追加します。
add user protocol MQTT -transport TCP -extension mqtt_code
-
ユーザー負荷分散仮想サーバーを追加し、それにバックエンドサービスをバインドします。
add service mqtt_svr1 10.217.24.48 USER_TCP 1501 add service mqtt_svr2 10.217.24.48 USER_TCP 1502 add lb vserver mqtt_lb USER_TCP –lbmethod USER_TOKEN bind lb vserver mqtt_lb mqtt_svr1 bind lb vserver mqtt_lb mqtt_svr2 <!--NeedCopy-->
-
新しく追加されたプロトコル用のユーザー仮想サーバーを追加します。defaultlb を上記で設定した LB 仮想サーバーに設定します。
add user vserver mqtt_vs MQTT 10.217.24.28 8765 -defaultLb mqtt_lb
-
オプションで、ClientID に基づいて MQTT セッションパーシステンスを有効にし、パーシステンスタイプを USERSESSION に設定します。
set lb vserver mqtt_lb -persistenceType USERSESSION