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!
MQTT 负载平衡
消息队列遥测传输 (MQTT) 是物联网 (IoT) 的 OASIS 标准消息协议。MQTT 是一种灵活且易于使用的技术,可在物联网系统内提供有效的通信。MQTT 是一种基于经纪商的协议,广泛用于促进客户和经纪商之间的报文交换。
MQTT 的以下主要优势使其成为物联网设备的理想选择:
- 可靠性
- 快速响应时间
- 能够支持无限设备
- 发布/订阅消息,非常适合多对多沟通
物联网是嵌入传感器、软件、网络连接和必要电子设备的互联设备的网络。嵌入式组件使物联网设备能够收集和交换数据。物联网设备使用率的增加给网络基础设施带来了多种挑战,其中 Scale 是突出的挑战。在物联网设备的大规模部署中,需要快速分析每台 IoT 设备生成的数据。为了达到规模要求和资源的有效利用,必须均匀分配代理池中的负载。在 MQTT 协议的支持下,您可以在物联网部署中使用 Citrix ADC 设备来对 MQTT 流量进行负载均衡。
下图描述了使用 Citrix ADC 设备对 MQTT 流量进行负载均衡的 MQTT 体系结构。
使用 MQTT 协议的物联网部署包括以下组件:
- MQTT 经纪人。接收来自客户端的所有消息然后将消息路由到相应的目标客户端的服务器。经纪人负责接收所有消息、过滤消息、确定谁订阅了每条消息,并将消息发送给这些已订阅的客户端。经纪商是每条消息必须通过的中心枢纽。
- MQTT 客户端。任何设备,从微控制器到成熟的服务器,它运行 MQTT 库并通过网络连接到 MQTT 代理。出版商和订阅者都是 MQTT 客户端。发布者和订阅者标签是指客户端是在发布消息还是订阅接收消息。
- MQTT 负载均衡器。Citrix ADC 设备配置了 MQTT 负载平衡虚拟服务器,以对 MQTT 流量进行负载平衡。
在典型的物联网部署中,代理(服务器群集)管理物联网设备组(物联网客户端)。Citrix ADC 设备根据客户端 ID、主题和用户名等各种参数对 MQTT 流量进行负载平衡。
为 MQTT 流量配置负载均衡
要使 Citrix ADC 设备对 MQTT 流量进行负载均衡,请执行以下配置任务:
- 配置 MQTT/MQTT_TLS 服务或服务组。
- 配置 MQTT/MQTT_TLS 负载平衡虚拟服务器。
- 将 MQTT/MQTT_TLS 服务绑定到 MQTT/MQTT_TLS 负载平衡虚拟服务器。
- 配置 MQTT/MQTT_TLS 内容交换虚拟服务器。
- 配置指定目标负载平衡虚拟服务器的内容切换操作
- 配置内容切换策略。
- 将内容切换策略绑定到已配置为重定向到特定负载平衡虚拟服务器的内容交换虚拟服务器。
- 保存配置。
使用 CLI 为 MQTT 流量配置负载平衡
配置 MQTT/MQTT_TLS 服务或服务组。
add service <name> <IP> <protocol> <port>
add servicegroup <ServiceGroupName> <Protocol>
bind servicegroup <serviceGroupName> <IP> <port>
<!--NeedCopy-->
示例:
add service srvc1 10.106.163.3 MQTT 1883
add servicegroup srvcg1 MQTT
bind servicegroup srvcg1 10.106.163.3 1883
<!--NeedCopy-->
配置 MQTT/MQTT_TLS 负载平衡虚拟服务器。
add lb vserver <name> <protocol> <IPAddress> <port>
<!--NeedCopy-->
示例:
add lb vserver lb1 MQTT 10.106.163.9 1883
<!--NeedCopy-->
将 MQTT/MQTT_TLS 服务或服务组绑定到 MQTT 负载平衡虚拟服务器。
bind lb vserver <name> <serviceName>
bind lb vserver <name> <servicegroupName>
<!--NeedCopy-->
示例:
bind lb vserver lb1 srvc1
bind lb vserver lb1 srvcg1
<!--NeedCopy-->
配置 MQTT/MQTT_TLS 内容交换虚拟服务器。
add cs vserver <name> <protocol> <IPAddress> <port>
<!--NeedCopy-->
示例:
add cs vserver cs1 MQTT 10.106.163.13 1883
<!--NeedCopy-->
配置指定目标负载平衡虚拟服务器的内容切换操作。
add cs action <name> -targetLBVserver <string> [-comment <string>]
<!--NeedCopy-->
示例:
add cs action act1 -targetlbvserver lbv1
<!--NeedCopy-->
配置内容切换策略。
add cs policy <policyName> [-url <string> | -rule <expression>] –action <actName>
<!--NeedCopy-->
示例:
add cs policy cspol1 -rule “MQTT.COMMAND.EQ(CONNECT) && MQTT.CONNECT.FLAGS.QOS.eq(2)” -action act1
<!--NeedCopy-->
将内容切换策略绑定到已配置为重定向到特定负载平衡虚拟服务器的内容交换虚拟服务器。
bind cs vserver <virtualServerName> -policyName <policyName> -priority <positiveInteger>
<!--NeedCopy-->
示例:
bind cs vserver cs1 –policyName cspol1 -priority 20
<!--NeedCopy-->
保存配置。
save ns config
<!--NeedCopy-->
使用 GUI 为 MQTT 流量配置负载平衡
- 导航到 流量管理 > 负载平衡 > 虚拟服务器,然后创建 MQT T 或 MQTT_TLS类型的负载平衡虚拟服务器。
- 创建 MQTT 类型的服务或服务组。
- 将服务绑定到 MQTT 虚拟服务器。
- 单击保存。
MQTT 消息长度限制
Citrix ADC 设备将消息长度大于 65536 字节的消息视为巨型数据包,并默认情况下将其丢弃。dropmqttjumbomessage
lb 参数决定是否处理巨型数据包。默认情况下,此参数设置为 YES,这意味着默认情况下会丢弃巨型 MQTT 数据包。如果此参数设置为 NO,则 ADC 设备甚至会处理消息长度大于 65536 字节的数据包。
要使用 CLI 将 ADC 设备配置为处理巨型数据包,请执行以下操作:
Set lb parameter –dropMqttJumboMessage [YES | NO]
<!--NeedCopy-->
示例:
set lb parameter –dropMqttJumboMessage no
<!--NeedCopy-->
共享
共享
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.