CN114900524A - 一种mqtt服务的负载均衡和节点降低延时方法 - Google Patents
一种mqtt服务的负载均衡和节点降低延时方法 Download PDFInfo
- Publication number
- CN114900524A CN114900524A CN202210511445.0A CN202210511445A CN114900524A CN 114900524 A CN114900524 A CN 114900524A CN 202210511445 A CN202210511445 A CN 202210511445A CN 114900524 A CN114900524 A CN 114900524A
- Authority
- CN
- China
- Prior art keywords
- mqtt
- node
- client
- information
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种MQTT服务的负载均衡和节点降低延时方法,所述方法包括以下步骤:步骤S1、客户端通过Https协议向Ticket服务器申请获取MQTT节点请求;步骤S2、Ticket服务器获取到客户端的请求,返回权重值高的MQTT节点信息发送至客户端,客户端收到MQTT节点信息,根据权重从高至低依次排序对MQTT节点进行连接;步骤S3、判断MQTT节点是否连接成功,是,则MQTT服务器保存客户端会话信息,客户端开始进行业务交互,否,则返回步骤S1;步骤S4、更新MQTT节点信息列表和MQTT节点状态;本发明能够实现降低客户端公网绕行导致的网络稳定性问题,同时降低通讯延迟。
Description
技术领域
本发明涉及计算机技术领域,特别是一种MQTT服务的负载均衡和节点降低延时方法。
背景技术
传统的MQTT服务器集群部署后,外部使用Nginx的Stream模式或者HAProxy,KeepAlive之类的服务端负载均衡组件进行服务端的负载均衡,从而保证上游的MQTT服务节点的连接,CPU负载状态均衡;
但是上述方案存在如下问题
1)部署成本增加,在服务器上不但需要部署MQTT服务器,还需要增加负载均衡服务组件
2)请参阅图1所示,容错性变差,因为客户端的MQTT连接是先连接到负载均衡组件,再由负载均衡组件连接到MQTT服务器的,这个过程中负载均衡组件出现问题也会引起设备到MQTT服务器的连接不可用
这些负载均衡组件一般使用上游轮询或者哈希方案进行上游MQTT的分发,一般只能根据连接数量进行分发,但是实际情况下,有一些连接是空闲的,挂在MQTT服务器上占用的带宽和CPU资源较少,由的连接由于客户端使用量大,导致很多流量进行传输,对CPU的占用很高,基于服务端负载均衡组件进行的负载均衡,无法真实的根据MQTT服务所在的节点的CPU/带宽/内存,进行合理的负载均衡。
发明内容
有鉴于此,本发明的目的是提供一种能够实现降低客户端公网绕行导致的网络稳定性问题,同时降低通讯延迟的方法。
本发明采用以下方法来实现:一种MQTT服务的负载均衡和节点降低延时方法,所述方法包括以下步骤:
步骤S1、客户端通过Https协议向Ticket服务器申请获取MQTT节点请求;
步骤S2、Ticket服务器获取到客户端的请求,返回权重值高的MQTT节点信息发送至客户端,客户端收到MQTT节点信息,根据权重从高至低依次排序对MQTT节点进行连接;
步骤S3、判断MQTT节点是否连接成功,是,则MQTT服务器保存客户端会话信息,客户端开始进行业务交互,否,则返回步骤S1;
步骤S4、更新MQTT节点信息列表和MQTT节点状态,从而实现降低客户端公网绕行导致的网络稳定性问题,同时降低通讯延迟。
进一步的,所述步骤S1进一步具体为:新增Ticket服务器,存储MQTT服务节点的元数据信息,客户端通过Https协议向Ticket服务器申请获取MQTT服务节点的元数据信息。
进一步的,所述步骤S4进一步具体包括以下步骤:步骤S41、每个MQTT节点按固定频率采集宿主机的状态信息;步骤S42、MQTT节点将采集到的信息通过monitor主题进行发布;步骤S43、Ticket服务器接收到来自MQTT服务器发布的monitor主题;步骤S44、Ticket服务器根据更新自身记录的MQTT服务器上报的指标数据,并且根据权重计算公式,更新自身的MQTT节点列表数据。
本发明的有益效果在于:本发明降低客户端公网绕行导致的网络稳定性问题,同时降低通讯延迟;减少因为使用传统负载均衡组件,组件本身出现问题而导致的服务不可用;根据MQTT服务器的宿主机的实时带宽/连接数/CPU占用率等状态信息来进行动态的负载均衡,均衡性相比传统静态方案均衡性更好。
附图说明
图1为现有技术的网络拓扑图。
图2为本发明的方法流程示意图。
图3为本发明的流程图。
图4为本发明的网络拓扑图。
具体实施方式
下面结合附图对本发明做进一步说明。
请参阅图1所示,本发明中的一种MQTT服务的负载均衡和节点降低延时方法,所述方法包括以下步骤:
步骤S1、客户端通过Https协议向Ticket服务器申请获取MQTT节点请求;
步骤S2、Ticket服务器获取到客户端的请求,返回权重值高的MQTT节点信息发送至客户端,客户端收到MQTT节点信息,根据权重从高至低依次排序对MQTT节点进行连接;
步骤S3、判断MQTT节点是否连接成功,是,则MQTT服务器保存客户端会话信息,客户端开始进行业务交互,否,则返回步骤S1;
步骤S4、更新MQTT节点信息列表和MQTT节点状态,从而实现降低客户端公网绕行导致的网络稳定性问题,同时降低通讯延迟。
下面通过一具体实施例对本发明作进一步说明:
本发明分为“发起连接”阶段S和“更新节点信息”阶段U这两大阶段“发起连接”阶段步骤如下:
步骤S1:
客户端通过Https协议想Ticket服务器申请获取MQTT节点请求
步骤S2:
Ticket服务器获取到客户端的请求,返回权重值最高的三个MQTT节点信息
案例:
现有区域距离系数映射矩阵:
5个节点:Node-1,Node-2,Node-3,Node-4,Node-5
每个节点的配置和采集到的信息如下
Node1{“区域A”,“当前连接1520”,“CPU使用25%”,“实时流量5.5Mbps”}
Node2{“区域B”,“当前连接1822”,“CPU使用30%”,“实时流量6.5Mbps”}
Node3{“区域C”,“当前连接877”,“CPU使用17%”,“实时流量5Mbps”}
Node4{“区域C”,“当前连接940”,“CPU使用19%”,“实时流量3.5Mbps”}
Node5{“区域B”,“当前连接1103”,“CPU使用20%”,“实时流量4.5Mbps”}
5个节点的带宽上限都为30Mbps,服务器资源系数都为1
客户端A被定位为在Tickserver上根据IP信息定位为区域C,带入公式计算
客户端A连接Node1带入公式:0.5+(1-(5.5/30))*(1-0.25)*1+(1-(1520/6262))*1=1.87
客户端A连接Node2带入公式:0.7+(1-(6.5/30))*(1-0.3)*1+(1-(1822/6262))*1=1.96
客户端A连接Node3带入公式:1+(1-(5/30))*(1-0.17)*1+(1-(877/6262))*1=2.55
客户端A连接Node4带入公式:1+(1-(3.5/30))*(1-0.19)*1+(1-(940/6262))*1=2.56
客户端A连接Node5带入公式:0.7+(1-(4.5/30))*(1-0.2)*1+(1-(1103/6262))*1=2.20
根据权重从高到底排列后返回前3的列表[Node4,Node3,Node5]
步骤S3:
客户端收到可用的MQTT节点信息,使用根据权重,从高到低按序对MQTT节点发起连接
根据前面的案例,发起连接的顺序为Node4,Node3,Node5
步骤S4:
如果任意节点连接成功,MQTT服务器保存客户端会话信息,客户端可以开始进行业务交互,否则跳回S1阶段,重新执行流程
“更新节点”阶段步骤如下:
步骤U1:
每个MQTT节点按5秒每次的频率使用Prometheus Node Exporter组件采集宿主机的状态信息
步骤U2:
MQTT节点将采集到的信息通过/monitor主题进行发布
步骤U3:
Ticket服务器接收到来自MQTT服务器发布的主题
步骤U4:
Ticket服务器根据更新自身记录的MQTT服务器上报的指标数据,并且根据权重计算公式,更新自身的MQTT列表数据,供阶段S使用;
将MQTT节点按地理大区部署在边缘机房,节点之间的连接通过VPC专线连接,减少公网绕行的网络质量问题
新增Ticket服务器,存储MQTT服务节点的元数据信息
MQTT服务器上定义了一类特殊角色,“MQTT服务状态观察者”
“MQTT服务状态观察者”仅允许订阅/monitor主题信息
其他业务接入者不允许订阅/monitor主题信息
每一个服务节点,定时将自身的“TCP连接数”,“TCP流量传输统计信息”,“CPU使用率信息”,“节点的区域分组信息”,以json形式编码,并publish至/monitor主题;
每一个Ticket服务器以“MQTT服务状态观察者”的角色接入到每一个MQTT服务器上,并且订阅/monitor主题
Ticket服务器暴露一个Http服务端口,并且在Ticket服务器的下游使用Nginx做代理,保证高可用;
当一个客户端想要接入MQTT服务的时候,先通过Ticket服务的Http接口获取到权重最高的几个MQTT服务器做回候选服务器
MQTT候选服务器的权重计算公式如下:
权重值=distance(location(客户端IP),节点区域)+((1-(实时流量/节点流量上限流))*(1-(cpu使用率))*服务器资源系数)+(1-(当前节点连接数/集群内总连接数)*服务器资源系数
函数解释:
location函数将客户端的IP信息转换为一个位置信息编码
distance函数接收客户端位置信息编码和MQTT服务器的位置信息编码,通过一个位置信息矩阵,获取到服务器和客户端位置的几何距离权重值
CPU使用率是多核CPU归一化以后的值
服务器资源系数是根据MQTT服务器的宿主机的计算能力和带宽设置的一组常量值客户端每一次连接/断线重连都先尝试从Ticket服务器获取到高权重候选列表,如果获取失败,则尝试使用上一次的候选列表进行连接,从而保证即使在Ticket服务器出现问题的时候,也不影响MQTT服务为客户端提供正常服务。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
Claims (3)
1.一种MQTT服务的负载均衡和节点降低延时方法,其特征在于,所述方法包括以下步骤:
步骤S1、客户端通过Https协议向Ticket服务器申请获取MQTT节点请求;
步骤S2、Ticket服务器获取到客户端的请求,返回权重值高的MQTT节点信息发送至客户端,客户端收到MQTT节点信息,根据权重从高至低依次排序对MQTT节点进行连接;
步骤S3、判断MQTT节点是否连接成功,是,则MQTT服务器保存客户端会话信息,客户端开始进行业务交互,否,则返回步骤S1;
步骤S4、更新MQTT节点信息列表和MQTT节点状态,从而实现降低客户端公网绕行导致的网络稳定性问题,同时降低通讯延迟。
2.根据权利要求1所述的一种MQTT服务的负载均衡和节点降低延时方法,其特征在于:所述步骤S1进一步具体为:新增Ticket服务器,存储MQTT服务节点的元数据信息,客户端通过Https协议向Ticket服务器申请获取MQTT服务节点的元数据信息。
3.根据权利要求1所述的一种MQTT服务的负载均衡和节点降低延时方法,其特征在于:所述步骤S4进一步具体包括以下步骤:步骤S41、每个MQTT节点按固定频率采集宿主机的状态信息;步骤S42、MQTT节点将采集到的信息通过monitor主题进行发布;步骤S43、Ticket服务器接收到来自MQTT服务器发布的monitor主题;步骤S44、Ticket服务器根据更新自身记录的MQTT服务器上报的指标数据,并且根据权重计算公式,更新自身的MQTT节点列表数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210511445.0A CN114900524A (zh) | 2022-05-11 | 2022-05-11 | 一种mqtt服务的负载均衡和节点降低延时方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210511445.0A CN114900524A (zh) | 2022-05-11 | 2022-05-11 | 一种mqtt服务的负载均衡和节点降低延时方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114900524A true CN114900524A (zh) | 2022-08-12 |
Family
ID=82722394
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210511445.0A Pending CN114900524A (zh) | 2022-05-11 | 2022-05-11 | 一种mqtt服务的负载均衡和节点降低延时方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114900524A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116800473A (zh) * | 2023-05-10 | 2023-09-22 | 广州市玄武无线科技股份有限公司 | 一种客户端与云服务通信方法、装置、存储介质以及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112543150A (zh) * | 2020-10-29 | 2021-03-23 | 贵州新致普惠信息技术有限公司 | 基于服务端控制的动态负载均衡方法 |
CN113746919A (zh) * | 2021-09-03 | 2021-12-03 | 中化信息技术有限公司 | 基于mqtt协议的多报文数据采集方法、采集系统 |
-
2022
- 2022-05-11 CN CN202210511445.0A patent/CN114900524A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112543150A (zh) * | 2020-10-29 | 2021-03-23 | 贵州新致普惠信息技术有限公司 | 基于服务端控制的动态负载均衡方法 |
CN113746919A (zh) * | 2021-09-03 | 2021-12-03 | 中化信息技术有限公司 | 基于mqtt协议的多报文数据采集方法、采集系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116800473A (zh) * | 2023-05-10 | 2023-09-22 | 广州市玄武无线科技股份有限公司 | 一种客户端与云服务通信方法、装置、存储介质以及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10771541B2 (en) | Automated management of content servers based on change in demand | |
US6330605B1 (en) | Proxy cache cluster | |
US6308214B1 (en) | Self-tuning dataflow I/O core | |
JP3593528B2 (ja) | 分散ネットワーク管理システムおよび方法 | |
CN111277629A (zh) | 一种基于高可用性的web高并发系统及方法 | |
CN111615066B (zh) | 一种基于广播的分布式微服务注册及调用方法 | |
CN108712464A (zh) | 一种面向集群微服务高可用的实现方法 | |
US20130007253A1 (en) | Method, system and corresponding device for load balancing | |
US9075660B2 (en) | Apparatus and method for providing service availability to a user via selection of data centers for the user | |
WO2011000199A1 (zh) | 集群服务器智能调度的方法及系统 | |
WO2020019472A1 (zh) | 服务节点的评分方法、域名系统dns调度方法及服务器 | |
US20040103194A1 (en) | Method and system for server load balancing | |
CN110933139A (zh) | 一种解决Web服务器高并发的系统及方法 | |
CN103581276A (zh) | 集群管理装置、系统、业务客户端及相应方法 | |
CN110266822B (zh) | 一种基于nginx的共享式负载均衡实现方法 | |
CN109933431B (zh) | 一种智能的客户端负载均衡方法及系统 | |
US10411911B2 (en) | Network as service service cross-domain orchestration method, orchestration device, and control device | |
US20060069777A1 (en) | Request message control method for using service and service providing system | |
CN108055333A (zh) | 一种基于ufs的nas-cifs集群负载均衡方法 | |
CN112583895B (zh) | Tcp通信方法、系统及装置 | |
CN110601994A (zh) | 云环境下微服务链感知的负载均衡方法 | |
CN114900524A (zh) | 一种mqtt服务的负载均衡和节点降低延时方法 | |
Safrianti | Peer Connection Classifier Method for Load Balancing Technique | |
US7334038B1 (en) | Broadband service control network | |
CN113055461A (zh) | 一种基于ZooKeeper的无人集群分布式协同指挥控制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |