协议扩展 - 用户定义的 TCP 客户端和服务器行为的通信管道
下图说明了示例协议扩展-用户定义的 TCP 客户端和服务器行为的流量管道
使用协议扩展添加自定义协议
自定义协议的命令行接口 (CLI) 命令使用关键字“用户”来表示底层配置实体的用户定义性质。在扩展代码的帮助下,您可以向系统添加新的用户协议,并为用户定义的协议添加用户虚拟服务器。反过来,用户虚拟服务器可以通过设置参数进行配置。虚拟服务器参数的配置值可在扩展代码中找到。
以下示例说明了为新协议添加支持的用户流程。该示例向系统添加了 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
-
或者,根据 ClientiID 启用 MQTT 会话持久性,将持久性类型设置为用户会话。
set lb vserver mqtt_lb -persistenceType USERSESSION