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

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

本地化后的图片

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

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

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

  1. 将 MQTT 协议扩展实现文件导入 Citrix ADC 系统。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
    
  4. 为新添加的协议添加用户 vserver。将默认值设置为上面配置的 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 客户端和服务器行为的通信管道