协议扩展 - 用户定义的 TCP 客户端和服务器行为的通信管道

下图说明了示例协议扩展-用户定义的 TCP 客户端和服务器行为的流量管道

本地化后的图片

使用协议扩展添加自定义协议

自定义协议的命令行接口 (CLI) 命令使用关键字“用户”来表示底层配置实体的用户定义性质。在扩展代码的帮助下,您可以向系统添加新的用户协议,并为用户定义的协议添加用户虚拟服务器。反过来,用户虚拟服务器可以通过设置参数进行配置。虚拟服务器参数的配置值可在扩展代码中找到。

以下示例说明了为新协议添加支持的用户流程。该示例向系统添加了 MQTT 协议支持。MQTT 是一种机器对机器“物联网”连接协议。它是一种轻量级的发布/订阅消息传输。该协议使用客户端和代理工具向订阅者发布消息,这对于与远程位置的连接很有用。

  1. 将 MQTT 协议扩展实现文件导入 NetScaler 系统。mqtt.lua 的代码清单如下所示。下面的示例导入了 Web 服务器上托管的 MQTT 扩展文件。

    import extension http://10.217.24.48/extensions/mqtt.lua mqtt_code

  2. 使用扩展将基于 TCP 的新用户协议添加到系统中。

    add user protocol MQTT -transport TCP -extension mqtt_code

  3. 添加用户负载平衡虚拟服务器并将后端服务绑定到它。

    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-->
    
  4. 为新添加的协议添加用户虚拟服务器。将 defaultlb 设置为上面配置的 LB 虚拟服务器。

    add user vserver mqtt_vs MQTT 10.217.24.28 8765 -defaultLb mqtt_lb

  5. 或者,根据 ClientiID 启用 MQTT 会话持久性,将持久性类型设置为用户会话。

    set lb vserver mqtt_lb -persistenceType USERSESSION

协议扩展 - 用户定义的 TCP 客户端和服务器行为的通信管道