基于MQTT协议多Broker实现负载均衡的方法转让专利

申请号 : CN202111008831.X

文献号 : CN113452800B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 覃江威杜冬冬罗启明熊皓杨志宇吴育校成建洪陈功陈军冯建设

申请人 : 深圳市信润富联数字科技有限公司

摘要 :

本发明公开一种基于MQTT协议多Broker实现负载均衡的方法,包括步骤:设备获取网关服务的信息并发请求到网关服务;通过网关服务将请求转发到业务服务;业务服务获取所有Broker的信息列表并组装为key,且判定网关服务转发来的参数值;业务服务获取各Broker对应的设备连接数;业务服务根据负载均衡算法获取Broker的信息;将Broker的信息返回给设备;设备向Broker发送connect请求;将Broker的信息组装成key;redis进行一次自增操作;Broker组装数据包信息并返回给设备并与该设备保持心跳。本发明不用升级设备即可动态切换设备所连接的Broker,设备连接数可控。

权利要求 :

1.一种基于MQTT协议多Broker实现负载均衡的方法,其特征在于,包括如下步骤:S1,设备通过读取设备自身的证书信息获取gateway网关服务的配置信息,并根据获取的配置信息向所述gateway网关服务发起携带有设备上次连接的Broker服务器的配置信息的请求;

S2,所述gateway网关服务接收到设备发送来的请求后,通过网关服务配置的路由规则将该请求转发到业务服务;

S3,所述业务服务接收到所述gateway网关服务转发来的请求后,读取配置文件获取所有的Broker服务器的配置信息列表,将每台Broker服务器的配置信息列表组装为redis的key,且该业务服务根据所述gateway网关服务转发来的请求中的参数值进行判定:a、如果所述gateway网关服务转发来的请求中的参数值为空,则继续执行步骤S4;

b、如果所述gateway网关服务转发来的请求中的参数值不为空,将该业务服务接收到所述gateway网关服务转发来的请求参数组装为redis的key,并通过redis将该由请求参数组装为redis的key的value值进行一次自减操作;

S4,所述业务服务根据步骤S3中各台Broker服务器的配置信息列表组装成的key从redis中获取各台Broker服务器对应的设备连接数;

S5,所述业务服务从redis中获取到每台Broker服务器的设备连接数后,根据配置中设置的负载均衡算法获取Broker服务器的详细信息;

S6、将步骤S5获取到的Broker服务器的详细信息返回给发送请求的设备;

S7,设备获取到Broker服务器的详细信息后,创建MQTT客户端,并使用获取到的Broker服务器的详细信息创建并执行connect连接消息,向获取到的Broker服务器的详细信息所在的Broker服务器发送connect请求;

S8,Broker服务器接收到设备的connect请求后,该Broker服务器从配置文件中获取到自身的配置信息,并将获取到的配置信息组装成redis的key;

S9,redis根据当前的key将value值进行一次自增操作;

S10,步骤S9完成后,Broker服务器组装请求需要返回的数据包信息;

S11,Broker服务器返回数据包信息给设备,反馈设备连接成功,设备本地保存Broker服务器的配置信息,后续该设备与当前Broker服务器保持心跳。

2.根据权利要求1所述的基于MQTT协议多Broker实现负载均衡的方法,其特征在于,所述步骤S1的具体实现方式为:设备通过读取文件流的方式从设备自身的证书信息中获取所述gateway网关服务的配置信息,并根据获取的gateway网关服务的配置信息向所述gateway网关服务发起携带有设备上次连接的Broker服务器的配置信息的请求。

3.根据权利要求1所述的基于MQTT协议多Broker实现负载均衡的方法,其特征在于,所述步骤S2的路由规则通过请求路径进行映射配置;所述gateway网关服务接收到请求后,通过RequestMapping路径进行映射。

4.根据权利要求1所述的基于MQTT协议多Broker实现负载均衡的方法,其特征在于,所述步骤S3的每台Broker服务器的配置信息列表中记载的配置信息包含每台Broker服务器的IP/域名和端口,每台Broker服务器的IP/域名对应一个key值。

5.根据权利要求1所述的基于MQTT协议多Broker实现负载均衡的方法,其特征在于,所述步骤S5通过负载均衡算法获取Broker服务器的详细信息的具体实现方式包括:a、如果负载均衡算法采用随机算法,所述业务服务根据当前从配置中获取到的所有的Broker服务器的配置信息列表,采用random随机数从所有的Broker服务器的配置信息列表中随机生成一个Broker服务器节点信息;

b、如果负载均衡算法采用轮询算法,所述业务服务根据当前从配置中获取到的所有的Broker服务器的配置信息列表,分别将每台Broker服务器的配置信息列表标记为不同的字符,并根据特指定的key从redis获取该key的value值,再将该value值与Broker服务器的标记为不同字符的配置信息列表进行比对,获取一个Broker服务器节点信息。

6.根据权利要求5所述的基于MQTT协议多Broker实现负载均衡的方法,其特征在于,所述具体实现方式b进一步从配置中获取Broker服务器的配置信息列表,根据特定的key2从redis中获取该key的value值,该value值与配置列表对比,获取轮询得到的Broker服务器节点信息。

7.根据权利要求1所述的基于MQTT协议多Broker实现负载均衡的方法,其特征在于,所述步骤S6的具体实现方式是通过所述gateway网关服务根据路由规则转发请求调用业务服务,再通过步骤S5所述的负载均衡算法获取到Broker服务器的详细信息返回给所述gateway网关服务,所述gateway网关服务再将接收到的Broker服务器的详细信息通过网络返回给发送请求的设备。

8.根据权利要求2所述的基于MQTT协议多Broker实现负载均衡的方法,其特征在于,所述设备的证书信息中包含gateway地址和端口;

所述设备向所述gateway网关服务发起的请求为http或https请求。

说明书 :

基于MQTT协议多Broker实现负载均衡的方法

技术领域

[0001] 本发明涉及通讯技术领域,尤其涉及一种基于MQTT协议多Broker实现负载均衡的方法。

背景技术

[0002] MQTT协议用于智能设备中,使得设备与Broker服务器建立连接之后能够保持长连接(即心跳检测机制)。目前大部分处理方案是给设备生成证书信息(也可称为证书文件,其
包含了Broker服务器的域名或者IP地址),并将证书信息烧录至设备中,此时,会将Broker
服务器的地址烧录至设备中,通过烧录的域名或IP,设备获取到Broker服务器的地址,从而
设备通过MQTT协议与Broker服务器建立connect连接。这种处理方案存在以下问题:第一,
一般证书的烧录都是使用的同一个域名或者IP,这将会导致后续的大量设备都会连接到同
一个Broker服务器中,可能存在宕机的问题;第二,就算是使用不同的域名或者IP,也将会
导致某一设备连接到固定的Broker服务器中,若是此台Broker服务器被宕机了,将会导致
设备无法连接Broker服务器,需要设备升级连接新的Broker地址,一方面对设备的连接带
来影响,设备需要执行升级等一大堆操作,不能及时恢复设备到正常状态,另一方面,由于
和设备烧录的域名或者IP以及设备数量有关,Broker连接数受设备证书和设备数量的影
响,可能会导致某一台Broker服务器连接数不可控,从而不好控制Broker服务器连接的设
备数量。因此,针对以上技术设计缺陷,有必要提供一种基于MQTT协议多Broker实现负载均
衡的方法,用以解决设备数量的扩展不影响Broker服务器连接数出现峰值的情况,保证了
设备证书烧录不限定设备连接固定的某一台Broker服务器,从而解决某一台Broker服务宕
机导致设备不能连接的问题。

发明内容

[0003] 本发明的目的是克服现有技术的不足,提供一种基于MQTT协议多Broker实现负载均衡的方法。
[0004] 本发明的技术方案如下:
[0005] 一种基于MQTT协议多Broker实现负载均衡的方法,包括如下步骤:
[0006] S1,设备通过读取设备自身的证书信息获取gateway网关服务的配置信息,并根据获取的配置信息向所述gateway网关服务发起携带有设备上次连接的Broker服务器的配置
信息的请求;
[0007] S2,所述gateway网关服务接收到设备发送来的请求后,通过网关服务配置的路由规则将该请求转发到业务服务;
[0008] S3,所述业务服务接收到所述gateway网关服务转发来的请求后,读取配置文件获取所有的Broker服务器的配置信息列表,将每台Broker服务器的配置信息列表组装为
redis的key,且该业务服务根据所述gateway网关服务转发来的请求中的参数值进行判定:
[0009] a、如果所述gateway网关服务转发来的请求中的参数值为空,则继续执行步骤S4;
[0010] b、如果所述gateway网关服务转发来的请求中的参数值不为空,将该业务服务接收到所述gateway网关服务转发来的请求参数组装为redis的key,并通过redis将该由请求
参数组装为redis的key的value值进行一次自减操作;
[0011] S4,所述业务服务根据步骤S3中各台Broker服务器的配置信息列表组装成的key从redis中获取各台Broker服务器对应的设备连接数;
[0012] S5,所述业务服务从redis中获取到每台Broker服务器的设备连接数后,根据配置中设置的负载均衡算法获取Broker服务器的详细信息;
[0013] S6、将步骤S5获取到的Broker服务器的详细信息通过网络返回给发送请求的设备;
[0014] S7,设备获取到Broker服务器的详细信息后,创建MQTT客户端,并使用获取到的Broker服务器的详细信息创建并执行connect连接消息,向获取到的Broker服务器的详细
信息所在的Broker服务器发送connect请求;
[0015] S8,Broker服务器接收到设备的connect请求后,该Broker服务器从配置文件中获取到自身的配置信息,并将获取到的配置信息组装成redis的key;
[0016] S9,redis根据当前的key将value值进行一次自增操作;
[0017] S10,步骤S9完成后,Broker服务器组装请求需要返回的数据包信息;
[0018] S11,Broker服务器返回数据包信息给设备,反馈设备连接成功,设备本地保存Broker服务器的配置信息,后续该设备与当前Broker服务器保持心跳。
[0019] 进一步地,所述步骤S1的具体实现方式为:设备通过读取文件流的方式从设备自身的证书信息中获取所述gateway网关服务的配置信息,并根据获取的gateway网关服务的
配置信息向所述gateway网关服务发起携带有设备上次连接的Broker服务器的配置信息的
请求。
[0020] 进一步地,所述步骤S2的路由规则通过请求路径进行映射配置;所述gateway网关服务接收到请求后,通过RequestMapping路径进行映射。
[0021] 进一步地,所述步骤S3的每台Broker服务器的配置信息列表中记载的配置信息包含每台Broker服务器的IP/域名和端口,每台Broker服务器的IP/域名对应一个key值。
[0022] 进一步地,所述步骤S5通过负载均衡算法获取Broker服务器的详细信息的具体实现方式包括:
[0023] a、如果负载均衡算法采用随机算法,所述业务服务根据当前从配置中获取到的所有的Broker服务器的配置信息列表,采用random随机数从所有的Broker服务器的配置信息
列表中随机生成一个Broker服务器节点信息;
[0024] b、如果负载均衡算法采用轮询算法,所述业务服务根据当前从配置中获取到的所有的Broker服务器的配置信息列表,分别将每台Broker服务器的配置信息列表标记为不同
的字符,并根据特指定的key从redis获取该key的value值,再将该value值与Broker服务器
的标记为不同字符的配置信息列表进行比对,获取一个Broker服务器节点信息。
[0025] 进一步地,所述具体实现方式b进一步从配置中获取Broker服务器的配置信息列表,根据特定的key2从redis中获取该key的value值,该value值与配置列表对比,获取轮询
得到的Broker服务器节点信息。
[0026] 进一步地,所述步骤S6的具体实现方式是通过所述gateway网关服务根据路由规则转发请求调用业务服务,再通过步骤S5所述的负载均衡算法获取到Broker服务器的详细
信息返回给所述gateway网关服务,所述gateway网关服务再将接收到的Broker服务器的详
细信息通过网络返回给发送请求的设备。
[0027] 进一步地,所述设备的证书信息中包含gateway地址和端口;
[0028] 所述设备向所述gateway网关服务发起的请求为http或https请求。
[0029] 采用上述方案,本发明具有以下有益效果:
[0030] 1、创建MQTT的connect连接前采用http或https请求动态Broker服务器的地址,方式更加灵活,且利于Broker服务器的扩展,设备不用升级处理,即可动态切换设备所连接的
Broker服务器,实现及时恢复设备到正常状态;
[0031] 2、建立connect连接的Broker服务器的地址不再由设备和证书决定,而是将连接的主动权交给服务器,由服务器的均衡算法和方案决定设备所连接的Broker服务器,对
Broker服务器的设备连接数可控;
[0032] 3、利于Broker的实例的扩展,后期扩展Broker,只需添加Broker实例和添加Broker服务器配置到业务服务中即可,通过业务服务读取配置,结合业务服务配置的均衡
算法,即可解决Broker实例扩展的问题,扩展更加灵活,Broker服务器的设备连接数可控,
均衡算法可根据需要可以多样化定制。

附图说明

[0033] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本
发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以
根据这些附图示出的结构获得其他的附图。
[0034] 图1为本发明基于MQTT协议多Broker实现负载均衡的方法的步骤流程图;
[0035] 图2为本发明基于MQTT协议多Broker实现负载均衡的方法中设备建立MQTT连接的时序图;
[0036] 图3为本发明基于MQTT协议多Broker实现负载均衡的方法中设备连接流程图。
[0037] 本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

[0038] 以下结合附图和具体实施例,对本发明进行详细说明。
[0039] 参照图1至图3所示,本发明提供一种基于MQTT协议多Broker实现负载均衡的方法,包括如下步骤:
[0040] S1,设备通过读取设备自身的证书信息获取gateway网关服务的配置信息,并根据获取的配置信息向gateway网关服务发起http或https请求,该请求携带有设备上次连接的
Broker服务器的配置信息,用以获取建立MQTT客户端所需要的Broker服务器的IP/地址和
端口,以及用以重新计算Broker服务器的设备连接数;具体的,步骤S1的具体实现方式为:
当设备通电连接WiFi后,设备就相当于一个微型计算机,由于设备出厂前烧录有包含设备
mac地址、设备注册到平台的gateway地址、IP/域名以及端口,因此,设备通过读取文件流的
方式从烧录在设备中的证书信息(也即设备自身的证书信息)中获取gateway网关服务的
gateway地址和端口,即设备的证书信息中包含gateway地址和端口,并根据获取的gateway
地址和端口向gateway网关服务发起携带有设备上次连接的Broker服务器的配置信息的
http或https请求,该请求可以称之为建立MQTT客户端的connect连接的预检请求,从而获
取到建立MQTT客户端所需要的Broker服务器的IP/地址和端口,并实现重新计算Broker服
务器的设备连接数;
[0041] S2,gateway网关服务接收到设备发送来的请求后,gateway网关服务通过网关服务配置的路由规则将该请求转发到业务服务,使业务服务读取配置文件获取所有Broker服
务器的配置信息列表;其中,所述步骤S2的路由规则通过请求路径进行映射配置,gateway
网关服务接收到请求后,通过RequestMapping路径进行映射,例如:如果请求路径中包含“/
user”,则gateway网关服务请求云服务中A服务,如果请求路径中包含“/file”,则gateway
网关服务则请求云服务中B服务;具体的,配置路由规则的一种实现代码如下:
[0042] spring:
[0043]   application:
[0044]     name: gateway
[0045]   profiles:
[0046]     active: dev
[0047]   cloud:
[0048]     gateway:
[0049]       routes:
[0050]         ‑ id: first_route
[0051]           uri:  http://172.16.3.1:8899
[0052]           predicates:
[0053]            ‑ Path=/user/**  //请求地址中有user,就请求172.16.3.1服务器
[0054]           filters:
[0055]             ‑ name: Hystrix
[0056]               args:
[0057]                 name: default
[0058]                 fallbackUri: forward:/fallback
[0059]         ‑ id: second_route
[0060]           uri: http://172.16.3.2:8888
[0061]           predicates:
[0062]            ‑ Path=/file/**  //请求地址中有file,就请求172.16.3.2服务器
[0063]           filters:
[0064]             # 熔断配置
[0065]             ‑ name: Hystrix
[0066]               args:
[0067]                 name: hystrix1
[0068]                 fallbackUri: forward:/fallback
[0069] ;
[0070] S3,业务服务接收到gateway网关服务转发来的请求后,读取配置文件获取所有的Broker服务器的配置信息列表,将每台Broker服务器的配置信息列表组装为redis的key,
且该业务服务根据gateway网关服务转发的请求中的参数值进行判定:
[0071] a、如果所述gateway网关服务转发来的请求中的参数值为空,表明设备之前没有进行过连接,即设备为新设备,则继续执行步骤S4;
[0072] b、如果所述gateway网关服务转发来的请求中的参数值不为空,表明设备之前进行过连接,将该业务服务接收到所述gateway网关服务转发来的请求参数组装为redis的
key1(是redis的key),并通过redis将该key1的value值进行一次自减操作;
[0073] 具体的,所述步骤S3的每台Broker服务器的配置信息列表中记载的配置信息包含每台Broker服务器的IP/域名和端口,所有的Broker服务器的配置信息列表大致为:
{[“IP”:“172.16.1.0”,“port”:“22”]},{[“IP”:“172.16.1.1”,“port”:“22”]};每台
Broker服务器的IP/域名对应一个key值;
[0074] S4,业务服务根据步骤S3中各台Broker服务器的配置信息列表组装成的key从redis的缓存中获取各台Broker服务器对应的设备连接数,并返回各台Broker服务器的设
备连接数给业务服务;
[0075] S5,业务服务从redis中获取到每台Broker服务器的设备连接数后,根据配置中设置的负载均衡算法获取Broker服务器的详细信息;具体的,通过负载均衡算法获取Broker
服务器的详细的具体实现方式包括:
[0076] a、如果负载均衡算法采用随机算法,业务服务根据当前从配置中获取到的所有的Broker服务器的配置信息列表,采用random随机数从所有的Broker服务器的配置信息列表
中随机生成一个Broker服务器节点信息;具体的,random随机数的一种实现代码如下:
[0077] Random random = new Random();
[0078]   List list = Lists.newArrayList();
[0079]   list.add("172.16.1.0");  //随机的元素
[0080]   list.add("172.16.1.1");  //随机的元素
[0081]    int index = random.nextInt(list.size());
[0082]    String ip = list.get(index);  //随机算法获取的结果
[0083] ;
[0084] b、如果负载均衡算法采用轮询算法,业务服务根据当前从配置中获取到的所有的Broker服务器的配置信息列表{[“IP”:“172.16.1.0”,“port”:“22”]},{[“IP”:
“172.16.1.1”,“port”:“22”]}分别将配置信息列表标记为0和1,即将配置信息列表
{[“IP”:“172.16.1.0”,“port”:“22”]}标记为0,将配置信息列表{[“IP”:“172.16.1.1”,
“port”:“22”]}标记为1,并从redis的缓存中获取特指定的key(在这里用key2表示特指定
的值)的value值,key2只用于获取当前轮询到哪个Broker服务器,也就是说,当负载均衡算
法采用的是轮询算法,业务服务根据当前从配置中获取到的所有的Broker服务器的配置信
息列表,分别将每台Broker服务器的配置信息列表标记为不同的字符,例如用数字进行标
记,并从redis的缓存中获取轮询算法当前轮询到的Broker服务器所对应的key2的value
值,由该value值与Broker服务器的标记为不同字符的配置信息列表进行比对、映射关系计
算,获取一个Broker服务器节点信息;例如:如果key2的值为0,则返回[“IP”:
“172.16.1.1”,“port”:“22”]的Broker服务器节点信息,即返回标记为1的配置信息列表所
对应Broker服务器的Broker服务器节点信息,并将redis的key2的值设置为1;如果key2的
值为1,则返回[“IP”:“172.16.1.0”,“port”:“22”]的Broker服务器节点信息,即返回标记
为0的配置信息列表所对应Broker服务器的Broker服务器节点信息,并将redis的key2的值
设置为0;
[0085] S6,将步骤S5获取到的Broker服务器的详细信息返回给设备终端;步骤S6的具体实现方式是通过所述gateway网关服务根据路由规则转发请求调用业务服务,再通过步骤
S5所述的负载均衡算法获取到Broker服务器的详细信息返回给所述gateway网关服务,所
述gateway网关服务接收到Broker服务器的详细信息后,将接收到的Broker服务器的详细
信息通过网络返回给发送请求的设备(即设备终端);
[0086] S7,设备获取到Broker服务器的详细信息(即Broker服务器节点信息)后,创建MQTT客户端,并使用获取到的Broker服务器的详细信息创建并执行connect连接消息,向获
取到的Broker服务器的配置信息所在的Broker服务器发送connect请求;具体的,创建MQTT
客户端的一种实现代码如下:
[0087] @Configuration
[0088] public class MqttConfig {
[0089]     private static final Logger LOGGER = LoggerFactory.getLogger(MqttConfig.class);
[0090]     public static final String CHANNEL_RECV = "recvMsgChannel"; // 订阅消息的信道
[0091]     public static final String CHANNEL_SEND = "sendMsgChannel"; // 发布消息的信道
[0092]     public static final String TOPIC = "topic";
[0093] /**
[0094] *   获取配置文件信息
[0095] **/
[0096]     @Value("${mqtt.username}")
[0097]     private String username;
[0098]     @Value("${mqtt.password}")
[0099]     private String password;
[0100]     @Value("${mqtt.url}")
[0101]     private String url;
[0102]     @Value("${mqtt.send.clientId}")
[0103]     private String senderClientId;
[0104]     @Value("${mqtt.recv.clientId}")
[0105]     private String recverClientId;
[0106]     // MQTT 客户端的连接器
[0107]     @Bean
[0108]     public MqttConnectOptions getMqttConnectOptions() {
[0109]         MqttConnectOptions options = new MqttConnectOptions();
[0110]         // 是否清空 session。false:服务器会保留客户端的连接记录,true:每次连接服务器都以新身份连接
[0111]         options.setCleanSession(true);
[0112]         options.setUserName(username); // 连接用户
[0113]         options.setPassword(password.toCharArray()); // 连接密码
[0114]         options.setServerURIs(url.split(","));  // 连接的服务器 url
[0115]         options.setConnectionTimeout(10); // 超时时间(单位:s)
[0116]         options.setKeepAliveInterval(20); // 保活心跳(单位:s),此方法没有重连机制
[0117]         return options;
[0118]     }
[0119]     // 构造 MQTT 客户端
[0120]     @Bean
[0121]     public MqttPahoClientFactory mqttClientFactory() {
[0122]        DefaultMqttPahoClientFactory  factory  =  new DefaultMqttPahoClientFactory();
[0123]         factory.setConnectionOptions(getMqttConnectOptions());
[0124]         return factory;
[0125]     }
[0126]     // MQTT 生产者客户端
[0127]     @Bean
[0128]     @ServiceActivator(inputChannel = CHANNEL_SEND)
[0129]     public MessageHandler mqttMsgSend() {
[0130]        MqttPahoMessageHandler  messageHandler  =  new MqttPahoMessageHandler(senderClientId, mqttClientFactory());
[0131]         messageHandler.setAsync(true);
[0132]         return messageHandler;
[0133]     }
[0134] }
[0135] ;
[0136] S8,Broker服务器接收到设备的connect请求后,该Broker服务器从配置文件中获取到该Broker服务器自身的配置信息,并将获取到的配置信息(即该Broker服务器自身的
配置信息)组装成redis的key;
[0137] S9,redis根据当前的key将value值进行一次自增操作,此时,该Broker服务器的设备连接数加一;具体的,redis的自增操作是原子性的;
[0138] S10,步骤S9完成后,Broker服务器组装请求需要返回的数据包信息;
[0139] S11,Broker服务器返回数据包信息给设备,反馈设备连接成功,设备本地保存Broker服务器的配置信息,后续该设备与当前Broker服务器保持心跳。
[0140] 与现有技术相比,本发明具有以下有益效果:
[0141] 1、创建MQTT的connect连接前采用http或https请求动态Broker服务器的地址,方式更加灵活,且利于Broker服务器的扩展,设备不用升级处理,即可动态切换设备所连接的
Broker服务器,实现及时恢复设备到正常状态;
[0142] 2、建立connect连接的Broker服务器的地址不再由设备和证书决定,而是将连接的主动权交给服务器,由服务器的均衡算法和方案决定设备所连接的Broker服务器,对
Broker服务器的设备连接数可控;
[0143] 3、利于Broker的实例的扩展,后期扩展Broker,只需添加Broker实例和添加Broker服务器配置到业务服务中即可,通过业务服务读取配置,结合业务服务配置的均衡
算法,即可解决Broker实例扩展的问题,扩展更加灵活,Broker服务器的设备连接数可控,
均衡算法可根据需要可以多样化定制。
[0144] 以上仅为本发明的较佳实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。