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 的以下主要优势使其成为您的 IoT 设备的理想选择:
- 可靠性
- 响应时间快
- 能够支持无限的设备
- 发布/订阅最适合多对多通信的消息
物联网是由嵌入传感器、软件、网络连接和必要电子设备的互联设备组成的网络。嵌入式组件使物联网设备能够收集和交换数据。物联网设备使用的增加给网络基础设施带来了多重挑战,其中最突出的挑战是规模。在物联网设备的大规模部署中,需要快速分析每台物联网设备生成的数据。为了达到规模要求和资源的有效利用,必须均匀分配代理池中的负载。在 MQTT 协议的支持下,您可以在物联网部署中使用 NetScaler 设备对 MQTT 流量进行负载平衡。
下图描述了使用 NetScaler 设备对 MQTT 流量进行负载平衡的 MQTT 架构。
采用 MQTT 协议的 IoT 部署包含以下组件:
- MQTT 代理。一种服务器,它接收来自客户端的所有消息,然后将消息路由到相应的目标客户端。代理负责接收所有消息、筛选消息、确定谁订阅了每条消息,并将消息发送给这些订阅的客户端。代理是每条消息都必须经过的中心枢纽。
- MQTT 客户端。任何设备,从微控制器到成熟的服务器,它运行 MQTT 库并通过网络连接到 MQTT 代理。发布者和订阅者都是 MQTT 客户端。发布者和订阅者标签指的是客户端是在发布消息还是订阅接收消息。
- MQTT 负载均衡器。NetScaler 设备配置了 MQTT 负载平衡虚拟服务器,用于对 MQTT 流量进行负载平衡。
在典型的物联网部署中,代理(服务器群集)管理物联网设备组(物联网客户端)。NetScaler 设备根据各种参数(例如客户端 ID、主题和用户名)对流向代理的 MQTT 流量进行负载平衡。
为 MQTT 流量配置负载平衡
要让 NetScaler 设备对 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 流量配置负载平衡
- 导航到“流量管理”>“负载平衡”>“虚拟服务器”,然后创建 MQTT 或 MQTT_TLS 类型的负载平衡虚拟服务器。
- 创建 MQTT 类型的服务或服务组。
- 将服务绑定到 MQTT 虚拟服务器。
- 单击保存。
MQTT 消息长度限制
NetScaler 设备将消息长度超过 65536 字节的消息视为巨型数据包,并在默认情况下将其丢弃。dropmqttjumbomessage
lb 参数决定是否处理巨型数据包。默认情况下,此参数设置为 YES,这意味着默认情况下会丢弃巨型 MQTT 数据包。如果将此参数设置为 NO,则 ADC 设备甚至会处理消息长度大于 65536 字节的数据包。
要将 ADC 设备配置为使用 CLI 处理巨型数据包,请执行以下操作:
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.