CN115987871B - 一种基于mqtt的拓扑关系保鲜方法、装置及介质 - Google Patents
一种基于mqtt的拓扑关系保鲜方法、装置及介质 Download PDFInfo
- Publication number
- CN115987871B CN115987871B CN202211638425.6A CN202211638425A CN115987871B CN 115987871 B CN115987871 B CN 115987871B CN 202211638425 A CN202211638425 A CN 202211638425A CN 115987871 B CN115987871 B CN 115987871B
- Authority
- CN
- China
- Prior art keywords
- leaf
- client
- server
- clients
- mqtt
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000004321 preservation Methods 0.000 title claims abstract description 16
- 230000005540 biological transmission Effects 0.000 claims abstract description 13
- 238000004891 communication Methods 0.000 claims description 5
- 238000011144 upstream manufacturing Methods 0.000 claims description 4
- 230000003993 interaction Effects 0.000 description 14
- 238000012423 maintenance Methods 0.000 description 9
- 230000008859 change Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种基于MQTT的拓扑关系保鲜方法、装置及介质,该方法Leaf客户端生成本地下联设备列表。以及与相应的上联服务端建立消息队列遥测传输MQTT连接,以基于已建立MQTT连接的服务端的遗嘱消息及服务端的共享操作,将Leaf客户端的拓扑关系数据更新至同一RoCE‑SAN网络中相应的若干远端Leaf客户端。其中,leaf客户端与服务端预先部署MQTT协议。远端Leaf客户端为通过MQTT网络订阅Leaf客户端的远端设备。遗嘱消息用于表征Leaf客户端的在线状态。根据相应的上联服务端的共享操作,更新拓扑信息表中的已被Leaf客户端订阅的至少一个Leaf客户端的拓扑关系数据。拓扑信息表包括本地Leaf客户端及被订阅Leaf客户端的拓扑关系数据。拓扑关系数据至少包括各Leaf客户端的本地下联设备列表。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种基于消息队列遥测传输(MessageQueuing Telemetry Transport,MQTT)的拓扑关系保鲜方法、装置及介质。
背景技术
在为业务系统提供存储接入服务时,主要采用传输控制协议(TransmissionControl Protocol,TCP)构建存储接入网络,即RoCE-SAN网络,一种聚合以太网上的远程直接数据存取(Remote Direct Memory Access,RDMA)存储区域网络。
目前,RoCE-SAN网络中,若要实现各网关设备或交换机,发现其他远端设备,需要构造大量的协议拓扑交互报文和交互逻辑,进而实现拓扑发现和拓扑管理。但是,对于网关设备或交换机较多的大型RoCE-SAN网络,拓扑维护工作量大,且由于其本身构造大量的协议拓扑交互报文和交互逻辑,使得维护过程复杂,容易出错,且拓扑更新的实时性也较差。
发明内容
为解决上述问题,本申请实施例提供了一种基于MQTT的拓扑关系保鲜方法、装置及介质。
一方面,本申请实施例提供了一种基于MQTT的拓扑关系保鲜方法,该方法包括:
Leaf客户端生成本地下联设备列表;以及
与相应的上联服务端建立消息队列遥测传输MQTT连接,以基于已建立MQTT连接的所述服务端的遗嘱消息及所述服务端的共享操作,将所述Leaf客户端的拓扑关系数据更新至同一RoCE-SAN网络中相应的若干远端Leaf客户端;其中,所述leaf客户端与所述服务端预先部署MQTT协议;所述远端Leaf客户端为通过MQTT网络订阅所述Leaf客户端的远端设备;所述遗嘱消息用于表征所述Leaf客户端的在线状态;
根据相应的上联服务端的共享操作,更新拓扑信息表中的已被所述Leaf客户端订阅的至少一个Leaf客户端的拓扑关系数据;所述拓扑信息表包括本地Leaf客户端及被订阅Leaf客户端的拓扑关系数据;所述拓扑关系数据至少包括各Leaf客户端的本地下联设备列表。
在本申请的一种实现方式中,所述Leaf客户端向各上联服务端发送MQTT连接报文,建立MQTT连接的情况下,基于各上联的所述服务端的连接报文反馈信息,确定所述服务端是否预先存储相应的所述MQTT连接报文;其中,所述MQTT连接报文至少包括:设备标识、遗嘱主题、遗嘱消息;
若否,向所述服务端发送所述遗嘱消息;
若是,所述服务端根据与所述Leaf客户端的通信连接状态,更新当前遗嘱消息。
在本申请的一种实现方式中,所述服务端将所述遗嘱主题发送至其下联的各Leaf客户端;
基于各下联的Leaf客户端的订阅操作,确定相应的所述远端Leaf客户端。
在本申请的一种实现方式中,所述服务端根据来自所述Leaf客户端的遗嘱消息或更新后的所述遗嘱消息,确定所述Leaf客户端的在线状态;
在所述Leaf客户端为在线状态的情况下,实时确定所述Leaf客户端的拓扑关系数据,并将所述拓扑关系数据同步至各所述远端Leaf客户端;
在所述Leaf客户端为离线状态的情况下,向各所述远端Leaf客户端发送所述Leaf客户端的空拓扑关系数据,以通过所述空拓扑关系数据,删除各所述远端Leaf客户端中的预先存储的所述Leaf客户端的历史拓扑关系数据。
在本申请的一种实现方式中,在所述Leaf客户端为离线状态的情况下,各所述远端Leaf客户端向相应的所述服务端发送空拓扑关系数据反馈信息;所述空拓扑关系数据反馈信息包括所述空拓扑关系数据的接收时刻;
在所述服务端接收到各所述远端Leaf客户端的空拓扑关系数据反馈信息匹配的情况下,生成更新指令,并将所述更新指令发送至各所述远端Leaf客户端。
在本申请的一种实现方式中,在所述Leaf客户端为离线状态的情况下,所述Leaf客户端确定所述离线状态对应的故障类型;
在所述故障类型为第一类型的情况下,所述Leaf客户端将相应的所述拓扑信息表删除;
在所述故障类型为第二类型的情况下,所述Leaf客户端存储所述拓扑信息表。
在本申请的一种实现方式中,所述第一类型为所述Leaf客户端与各所述上联服务端的上联口故障;所述第二类型为所述Leaf客户端的硬件设备掉电或控制层协议异常。
在本申请的一种实现方式中,所述设备标识为各Leaf客户端的IP地址。
另一方面,本申请实施例还提供了一种基于MQTT的拓扑关系保鲜装置,所述装置包括:
生成模块,用于Leaf客户端生成本地下联设备列表;以及
建立连接模块,用于与相应的上联服务端建立消息队列遥测传输MQTT连接,以基于已建立MQTT连接的所述服务端的遗嘱消息及所述服务端的共享操作,将所述Leaf客户端的拓扑关系数据更新至同一RoCE-SAN网络中相应的若干远端Leaf客户端;其中,所述leaf客户端与所述服务端预先部署MQTT协议;所述远端Leaf客户端为通过MQTT网络订阅所述Leaf客户端的远端设备;所述遗嘱消息用于表征所述Leaf客户端的在线状态;
更新模块,用于根据相应的上联服务端的共享操作,更新拓扑信息表中的已被所述Leaf客户端订阅的至少一个Leaf客户端的拓扑关系数据;所述拓扑信息表包括本地Leaf客户端及被订阅Leaf客户端的拓扑关系数据;所述拓扑关系数据至少包括各Leaf客户端的本地下联设备列表。
再一方面,本申请实施例还提供了一种基于MQTT的拓扑关系保鲜的非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
Leaf客户端生成本地下联设备列表;以及
与相应的上联服务端建立消息队列遥测传输MQTT连接,以基于已建立MQTT连接的所述服务端的遗嘱消息及所述服务端的共享操作,将所述Leaf客户端的拓扑关系数据更新至同一RoCE-SAN网络中相应的若干远端Leaf客户端;其中,所述leaf客户端与所述服务端预先部署MQTT协议;所述远端Leaf客户端为通过MQTT网络订阅所述Leaf客户端的远端设备;所述遗嘱消息用于表征所述Leaf客户端的在线状态;
根据相应的上联服务端的共享操作,更新拓扑信息表中的已被所述Leaf客户端订阅的至少一个Leaf客户端的拓扑关系数据;所述拓扑信息表包括本地Leaf客户端及被订阅Leaf客户端的拓扑关系数据;所述拓扑关系数据至少包括各Leaf客户端的本地下联设备列表。
通过上述方案,本申请能够利用高效成熟的MQTT已有的遗嘱技术实现RoCE-SAN的拓扑实时发现和管理,可以简单快捷的使Leaf客户端发现远端设备的上线和下线,极大地提高拓扑更新的时效性。并能够快速响应各种拓扑变化场景,提高整网性能,达到快速识别感知远端设备拓扑结构,进而快速适应各种网络拓扑变化的场景,保持网络拓扑的健壮性和高效性。从而解决了现有技术中需要构造大量的协议拓扑交互报文和交互逻辑来实现拓扑发现和拓扑管理,对于leaf设备较多的大型RoCE-SAN拓扑维护工作量大、复杂且容易出错,拓扑更新的实时性也较差的问题。减少维护人员的成本投入,提高用户的使用体验。此外,还能够快速响应存储网络交换机故障,更新拓扑关系。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例中RoCE-SAN存储网络的拓扑结构示意图;
图2为本申请实施例中一种基于MQTT的拓扑关系保鲜方法的一种流程示意图;
图3为本申请实施例中一种基于MQTT的拓扑关系保鲜方法的一种拓扑结构示意图;
图4为本申请实施例中一种基于MQTT的拓扑关系保鲜方法的另一种拓扑结构示意图;
图5为本申请实施例中一种基于MQTT的拓扑关系保鲜装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
业内主要使用FC-SAN和IP-SAN网络为各种业务系统提供存储接入服务,但各有缺点和瓶颈,RoCE-SAN是一种基于RoCE协议的高性能无损存储区域网络,具备零丢包、低时延、即插即用及故障快速收敛等特点,能够兼备FC-SAN和IP-SAN的优点,并且实现FC-SAN与IP-SAN的融合。RoCE-SAN在功能、IOPS性能和故障收敛性能方面均达到并优于FC-SAN和IP-SAN,并将逐步替代FC-SAN和IP-SAN。
现有的实现方案主要是利用TCP协议构建存储接入网络。如图1所示,其中,port1、port2分别指的是第一接口、第二接口,Local host表示本地主机,Remote host表示:远端主机,Remote leaf表示远端leaf客户端,leaf即节点网关设备。Spine为交换机或路由器等。host为主机和存储阵列,两台Spine核心交换机作为TCP服务器server,二者互为备份且整网三层路由可达,其它所有Leaf交换机作为TCP客户端client,每个server和client之间都需要建立TCP连接并交互TCP协议报文。Leaf交换机之间不需要建立TCP连接,只需要与主机host直连并交互LLDP协议,Spine交换机之间也不需要建立TCP连接,二者互为备份。协议报文是TCP封装的报文,包含设备关键信息的内容承载在TCP报文的Data字段内。Leaf交换机可以通过协议报文将设备关键信息发送给spine交换机,spine交换机汇总后再发往其他所有Leaf交换机。Leaf交换机通过链路层发现协议(Link Layer Discovery Protocol,LLDP)发现本地挂载的Host设备列表并通过TCP协议报文将这些信息发送给Spine,Spine再将这些设备信息发送给所有其它Leaf交换机,每台Leaf交换机下都需要保存本地host设备信息列表和远端host设备信息列表,本Leaf下的远端host设备就是其它Leaf下的本地host设备。每台Leaf交换机也通过TCP协议报文交互发现网络拓扑中的其它所有远端Leaf交换机,可以用交换机IP地址代表每个不同的Leaf交换机和host设备,交换机下挂载的host都有不同的IP地址。
现有技术方案中,由于每台Leaf交换机要发现远端其它所有在线的Leaf交换机,需要构造大量的协议拓扑交互报文和交互逻辑来实现拓扑发现和拓扑管理,对于leaf设备较多的大型RoCE-SAN拓扑维护工作量大、复杂且容易出错,拓扑更新的实时性也较差。例如Leaf1断电或Leaf1与两个Spine之间的链路全部断开,此时Leaf1已经脱离RoCE-SAN网络,Leaf1需要依赖其复杂的TCP拓扑信息交互才能感知该拓扑变化并及时将所有远端Host(host3和host4)设备信息删除,使整个拓扑更新时效大打折扣,降低整网性能。同时Leaf2交换机也无法快速感知Leaf1交换机异常,进而快速删除Leaf2下保存的远端设备host1和host2。其中Leaf1会将它的本地设备host1和host2信息同步给Leaf2,host1和host2就属于Leaf2的远端host设备,同样Leaf2下的本地设备host3和host4属于Leaf1的远端host设备。
基于此,本申请实施例提供了一种基于MQTT的拓扑关系保鲜方法、装置及介质,用来降低RoCE-SAN网络的拓扑维护工作量、复杂度及维护出错率,提高拓扑更新的实时性,减少维护人员的成本投入,提高用户的使用体验。达到快速识别感知远端设备拓扑结构,进而快速适应各种网络拓扑变化的场景,保持网络拓扑的健壮性和高效性。
以下结合附图,详细说明本申请的各个实施例。
本申请实施例提供了一种基于MQTT的拓扑关系保鲜方法,如图2所示,该方法可以包括步骤S201-S203:
S201,Leaf客户端生成本地下联设备列表。
如图3所示,Leaf客户端为Leaf3时,Leaf3能够通过LLDP协议发现其下联的本地下联设备列表,包括:host5、host6,下联设备可以是用户终端如服务器、电脑等设备,本申请对于本地下联设备列表中的设备类型,不作具体限定。
Leaf1下的本地host设备列表有host1和host2,远端host设备列表有Leaf2下联的host3和host4,其拓扑发现的远端leaf设备列表有Leaf2。Leaf2下的本地host设备列表有host3和host4,远端host设备列表有Leaf1下联的host1和host2,其拓扑发现的远端leaf设备列表有Leaf1,其中Leaf和host设备都由各自的IP地址进行识别和区分。
S202,Leaf客户端与相应的上联服务端建立消息队列遥测传输MQTT连接,以基于已建立MQTT连接的服务端的遗嘱消息及服务端的共享操作,将Leaf客户端的拓扑关系数据更新至同一RoCE-SAN网络中相应的若干远端Leaf客户端。
其中,leaf客户端与服务端预先部署MQTT协议。远端Leaf客户端为通过MQTT网络订阅Leaf客户端的远端设备。遗嘱消息用于表征Leaf客户端的在线状态。
在本申请实施例中,Spine与Leaf之间均预先设置有MQTT协议,Spine为MQTT服务端,Leaf为MQTT客户端,并作为MQTT消息的发布者和订阅者。
以Leaf3作为Leaf客户端为例,Leaf3上电并加入RoCE-SAN拓扑网络。接着,Leaf客户端向各上联服务端(如,Spine1、Spine2)发送MQTT连接报文,并建立MQTT连接;其中,MQTT连接报文至少包括:设备标识、遗嘱主题、遗嘱消息以及遗嘱保留信息,遗嘱保留信息用于表示该Leaf客户端是否使用本申请基于MQTT的拓扑关系保鲜方法,进行拓扑关系保鲜,遗嘱保留信息为布尔类型。如Leaf3的MQTT连接报文中的设备标识设置为该设备的IP地址,lastWillTopic(遗嘱主题)设置为“roce/leaf3”,lastWillMessage(遗嘱消息)设置为“offline”,lastWillRetain(遗嘱保留)设置为true。
随后,上联服务端记录建立连接的Leaf3的MQTT连接报文(设备标识、遗嘱主题、遗嘱消息以及遗嘱保留信息),并能够根据MQTT连接报文进行生成连接报文反馈信息。例如,Leaf3为第一次上电加入RoCE-SAN网络与上联服务端第一建立MQTT连接,那么上联服务端将完整记录来自Leaf3的MQTT连接报文。如果上联服务端中已包含了Leaf3的MQTT连接报文相关信息,那么无须保存MQTT连接报文中所有信息。进而上联服务端生成连接报文反馈信息,连接报文反馈信息表征所述Leaf3是否为第一次与上联服务端建立MQTT连接。Leaf3可以基于各上联的服务端的连接报文反馈信息,确定服务端是否预先存储相应的MQTT连接报文。
在确定服务端没有预先存储相应的MQTT连接报文的情况下,向服务端发送遗嘱消息。
在确定服务端预先存储相应的MQTT连接报文的情况下,服务端根据与Leaf客户端的通信连接状态,更新当前遗嘱消息。
换言之,上联服务端可以确定进行MQTT连接的客户端,是否为第一次连接。一般地,在首次连接的Leaf客户端的相关信息设备标识、遗嘱主题、遗嘱消息以及遗嘱保留信息,没有存储在服务端,服务端需要先将相关遗嘱信息进行保存。且在第一次发送的MQTT连接报文中,遗嘱消息为offline,即下线状态;需要Leaf客户端根据建立了MQTT连接后的连接报文反馈信息,再向服务端发送上线遗嘱消息online。
在实际使用过程中,Leaf客户端可能会发生上联口断开再闭合的情况,这使得Leaf客户端不是首次与上联服务端建立MQTT连接。这种情况下,上联服务端可以根据Leaf客户端上线状态(上电状态),确定上线状态的Leaf客户端设备标识属于预先存储相应的MQTT连接报文的设备,并确定当前服务端与该Leaf客户端的通信连接状态是否正常,如果正常,服务端将自动进行更新预先存储的MQTT连接报文中的相关遗嘱信息,即遗嘱消息由offline变为online。
在本申请实施例中,各Leaf客户端的MQTT连接报文被上联服务端存储后,作为各Leaf客户端的遗嘱信息,至少包括:遗嘱主题、遗嘱消息以及遗嘱保留信息。
在本申请实施例中,Leaf客户端与相应的上联服务端建立消息队列遥测传输MQTT连接之后,还包括:
服务端(Spine)将遗嘱主题发送至其下联的各Leaf客户端(如Leaf1、Leaf2)。并基于各下联的Leaf客户端的订阅操作,确定相应的远端Leaf客户端。
换言之,在Leaf客户端与服务端建立了MQTT网络,服务端(如Spine2)连接或间接连接的设备,如(Spine1、Leaf2、Leaf1)中,将能够得到Leaf3的相关信息。具体地,Spine1中将存储于Spine2中相同的Leaf3的遗嘱信息,并Leaf1或Leaf2能够通过Spine1或Spine2得知Leaf3的遗嘱主题,并进行对Leaf3的订阅行为。订阅指的是远端设备能够加入订阅设备即本地设备的拓扑信息表,订阅设备具有得知远端设备的离线、上线状态的权限。
其中,订阅设备可能只有Leaf1,Leaf2并未订阅Leaf3的遗嘱主题的情况,那么服务端只共享Leaf3的遗嘱信息至Leaf1中,只有Leaf1为远端Leaf客户端。
在本申请实施例中,基于已建立MQTT连接的服务端的遗嘱消息及服务端的共享操作,将Leaf客户端的拓扑关系数据更新至同一RoCE-SAN网络中相应的若干远端Leaf客户端,具体包括:
服务端根据来自Leaf客户端的遗嘱消息或更新后的遗嘱消息,确定Leaf客户端的在线状态。在Leaf客户端为在线状态的情况下,实时确定Leaf客户端的拓扑关系数据,并将拓扑关系数据同步至各远端Leaf客户端。在Leaf客户端为离线状态的情况下,向各远端Leaf客户端发送Leaf客户端的空拓扑关系数据,以通过空拓扑关系数据,删除各远端Leaf客户端中的预先存储的Leaf客户端的历史拓扑关系数据。
换言之,服务端中存储的Leaf客户端的遗嘱消息状态,能够根据初次连接的Leaf客户端主动发送的遗嘱消息或者重新连接的Leaf客户端重新上电或重新连接时,自动检测进行变更。如果,Leaf客户端当前在线,那么服务端能够将该Leaf客户端的拓扑关系数据,如Leaf3(host5、host6),即Leaf客户端及其对应的本地下联设备列表,发送至各远端Leaf客户端的拓扑信息表中。如果,Leaf客户端当前为离线状态,那么服务端能够更改遗嘱信息中的遗嘱消息状态为offline,即产生空拓扑关系数据,发送至订阅Leaf客户端的远端Leaf客户端,以使各远端Leaf客户端从其拓扑信息表中,删除离线的Leaf客户端的拓扑关系数据。
在本申请实施例中,在Leaf客户端为离线状态的情况下,各远端Leaf客户端向相应的服务端发送空拓扑关系数据反馈信息。空拓扑关系数据反馈信息包括空拓扑关系数据的接收时刻。在服务端接收到各远端Leaf客户端的空拓扑关系数据反馈信息匹配的情况下,生成更新指令,并将更新指令发送至各远端Leaf客户端。
换言之,服务端可以匹配存在离线状态Leaf客户端的拓扑关系数据的各远端Leaf客户端接收到Leaf客户端离线遗嘱消息offline的时刻,如果匹配,即时刻相等或时刻差值小于预设偏差,那么将会进行更新各远端Leaf客户端的拓扑信息表。从而避免各远端Leaf客户端不能同时、及时地进行更新拓扑信息表,使得拓扑更新实时性更高。也避免了更新时,各客户端的更新不能实现同步,减少拓扑更新出错。
预设偏差可以由用户进行设定,本申请对此不作具体限定。
在本申请实施例中,在Leaf客户端为离线状态的情况下,Leaf客户端确定离线状态对应的故障类型。在故障类型为第一类型的情况下,Leaf客户端将相应的拓扑信息表删除。在故障类型为第二类型的情况下,Leaf客户端存储拓扑信息表。
其中,第一类型为Leaf客户端与各上联服务端的上联口故障。第二类型为Leaf客户端的硬件设备掉电或控制层协议异常。
如图4所示,在Leaf客户端(Leaf1)与各上联口故障时,Leaf1将相应的拓扑信息表删除,即删除本地下联设备列表以及其他设备(Leaf2及其host3、host4,Leaf3及其host5、host6)的拓扑关系数据。Leaf1的硬件设备掉电或控制层协议异常的情况下,Leaf1可以不将拓扑信息表进行删除,以在设备恢复正常时,服务端Spine检测到Leaf1恢复MQTT连接,它会直接将Leaf1的遗嘱消息重新设置为“online”,其中leaf1对应的遗嘱主题为“roce/leaf1”,这样其它所有订阅“roce/leaf1”的Leaf设备Leaf2和Leaf3都能收到Leaf1在线的遗嘱消息“online”,进而实时更新各自的远端设备拓扑信息表,并将Leaf1加入各自的远端设备拓扑信息表中。NULL表示无效的。
S203,Leaf客户端根据相应的上联服务端的共享操作,更新拓扑信息表中的已被Leaf客户端订阅的至少一个Leaf客户端的拓扑关系数据。
拓扑信息表包括本地Leaf客户端及被订阅Leaf客户端的拓扑关系数据。拓扑关系数据至少包括各Leaf客户端的本地下联设备列表。
也就是说,在Leaf客户端将遗嘱信息发送至其他的客户端时,也能够通过服务端进行订阅其他的远端Leaf客户端,并确定其他远端Leaf客户端下的远端设备host,进而更新拓扑信息表。更新拓扑信息表中的拓扑关系数据包括远端Leaf客户端的拓扑关系以及本地下联设备列表的拓扑关系数据。
通过上述方案,本申请能够利用高效成熟的MQTT已有的遗嘱技术实现RoCE-SAN的拓扑实时发现和管理,可以简单快捷的发现远端设备上线和下线,极大地提高拓扑更新的时效性,快速响应各种拓扑变化场景,提高整网性能,解决了现有技术中需要构造大量的协议拓扑交互报文和交互逻辑来实现拓扑发现和拓扑管理,对于leaf设备较多的大型RoCE-SAN拓扑维护工作量大、复杂且容易出错,拓扑更新的实时性也较差的问题。
图5为本申请实施例提供的一种基于MQTT的拓扑关系保鲜装置的结构示意图,装置包括:
生成模块501,用于Leaf客户端生成本地下联设备列表。以及
建立连接模块502,用于与相应的上联服务端建立消息队列遥测传输MQTT连接,以基于已建立MQTT连接的服务端的遗嘱消息及服务端的共享操作,将Leaf客户端的拓扑关系数据更新至同一RoCE-SAN网络中相应的若干远端Leaf客户端。其中,leaf客户端与服务端预先部署MQTT协议。远端Leaf客户端为通过MQTT网络订阅Leaf客户端的远端设备。遗嘱消息用于表征Leaf客户端的在线状态。
更新模块503,用于根据相应的上联服务端的共享操作,更新拓扑信息表中的已被Leaf客户端订阅的至少一个Leaf客户端的拓扑关系数据。拓扑信息表包括本地Leaf客户端及被订阅Leaf客户端的拓扑关系数据。拓扑关系数据至少包括各Leaf客户端的本地下联设备列表。
本申请实施例还提供了一种基于MQTT的拓扑关系保鲜的非易失性计算机存储介质,存储有计算机可执行指令,计算机可执行指令设置为:
Leaf客户端生成本地下联设备列表。以及
与相应的上联服务端建立消息队列遥测传输MQTT连接,以基于已建立MQTT连接的服务端的遗嘱消息及服务端的共享操作,将Leaf客户端的拓扑关系数据更新至同一RoCE-SAN网络中相应的若干远端Leaf客户端。其中,leaf客户端与服务端预先部署MQTT协议。远端Leaf客户端为通过MQTT网络订阅Leaf客户端的远端设备。遗嘱消息用于表征Leaf客户端的在线状态。
根据相应的上联服务端的共享操作,更新拓扑信息表中的已被Leaf客户端订阅的至少一个Leaf客户端的拓扑关系数据。拓扑信息表包括本地Leaf客户端及被订阅Leaf客户端的拓扑关系数据。拓扑关系数据至少包括各Leaf客户端的本地下联设备列表。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置及介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请实施例提供的装置及介质与方法是一一对应的,因此,装置及介质也具有与其对应的方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述装置及介质的有益技术效果。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (8)
1.一种基于MQTT的拓扑关系保鲜方法,其特征在于,所述方法包括:
Leaf客户端生成本地下联设备列表;以及
与相应的上联服务端建立消息队列遥测传输MQTT连接,以基于已建立MQTT连接的所述服务端的遗嘱消息及所述服务端的共享操作,将所述Leaf客户端的拓扑关系数据更新至同一RoCE-SAN网络中相应的若干远端Leaf客户端;其中,所述leaf客户端与所述服务端预先部署MQTT协议;所述远端Leaf客户端为通过MQTT网络订阅所述Leaf客户端的远端设备;所述遗嘱消息用于表征所述Leaf客户端的在线状态;
根据相应的上联服务端的共享操作,更新拓扑信息表中的已被所述Leaf客户端订阅的至少一个Leaf客户端的拓扑关系数据;所述拓扑信息表包括本地Leaf客户端及被订阅Leaf客户端的拓扑关系数据;所述拓扑关系数据至少包括各Leaf客户端的本地下联设备列表;
其中,基于已建立MQTT连接的所述服务端的遗嘱消息及所述服务端的共享操作,将所述Leaf客户端的拓扑关系数据更新至同一RoCE-SAN网络中相应的若干远端Leaf客户端,具体包括:
所述服务端根据来自所述Leaf客户端的遗嘱消息或更新后的所述遗嘱消息,确定所述Leaf客户端的在线状态;
在所述Leaf客户端为在线状态的情况下,实时确定所述Leaf客户端的拓扑关系数据,并将所述拓扑关系数据同步至各所述远端Leaf客户端;
在所述Leaf客户端为离线状态的情况下,向各所述远端Leaf客户端发送所述Leaf客户端的空拓扑关系数据,以通过所述空拓扑关系数据,删除各所述远端Leaf客户端中的预先存储的所述Leaf客户端的历史拓扑关系数据。
2.根据权利要求1所述方法,其特征在于,所述方法还包括:
所述Leaf客户端向各上联服务端发送MQTT连接报文,建立MQTT连接的情况下,基于各上联的所述服务端的连接报文反馈信息,确定所述服务端是否预先存储相应的所述MQTT连接报文;其中,所述MQTT连接报文至少包括:设备标识、遗嘱主题、遗嘱消息;
若否,所述服务端需要先将相关遗嘱信息进行保存;且在第一次发送的所述MQTT连接报文中,遗嘱消息为offline,即下线状态;需要Leaf客户端根据建立了MQTT连接后的连接报文反馈信息,再向服务端发送上线遗嘱消息online;
若是,所述服务端根据与所述Leaf客户端的通信连接状态,更新当前遗嘱消息。
3.根据权利要求2所述方法,其特征在于,所述Leaf客户端与相应的上联服务端建立消息队列遥测传输MQTT连接之后,所述方法还包括:
所述服务端将所述遗嘱主题发送至其下联的各Leaf客户端;
基于各下联的Leaf客户端的订阅操作,确定相应的所述远端Leaf客户端。
4.根据权利要求1所述方法,其特征在于,所述方法还包括:
在所述Leaf客户端为离线状态的情况下,各所述远端Leaf客户端向相应的所述服务端发送空拓扑关系数据反馈信息;所述空拓扑关系数据反馈信息包括所述空拓扑关系数据的接收时刻;
在所述服务端接收到各所述远端Leaf客户端的空拓扑关系数据反馈信息匹配的情况下,生成更新指令,并将所述更新指令发送至各所述远端Leaf客户端;所述更新指令用于更新各所述远端Leaf客户端的拓扑信息表。
5.根据权利要求1所述方法,其特征在于,所述方法还包括:
在所述Leaf客户端为离线状态的情况下,所述Leaf客户端确定所述离线状态对应的故障类型;
在所述故障类型为第一类型的情况下,所述Leaf客户端将相应的所述拓扑信息表删除;
在所述故障类型为第二类型的情况下,所述Leaf客户端存储所述拓扑信息表;
其中,所述第一类型为所述Leaf客户端与各所述上联服务端的上联口故障;所述第二类型为所述Leaf客户端的硬件设备掉电或控制层协议异常。
6.根据权利要求2所述方法,其特征在于,所述设备标识为各Leaf客户端的IP地址。
7.一种基于MQTT的拓扑关系保鲜装置,其特征在于,所述装置包括:
生成模块,用于Leaf客户端生成本地下联设备列表;以及
建立连接模块,用于与相应的上联服务端建立消息队列遥测传输MQTT连接,以基于已建立MQTT连接的所述服务端的遗嘱消息及所述服务端的共享操作,将所述Leaf客户端的拓扑关系数据更新至同一RoCE-SAN网络中相应的若干远端Leaf客户端;其中,所述leaf客户端与所述服务端预先部署MQTT协议;所述远端Leaf客户端为通过MQTT网络订阅所述Leaf客户端的远端设备;所述遗嘱消息用于表征所述Leaf客户端的在线状态;
更新模块,用于根据相应的上联服务端的共享操作,更新拓扑信息表中的已被所述Leaf客户端订阅的至少一个Leaf客户端的拓扑关系数据;所述拓扑信息表包括本地Leaf客户端及被订阅Leaf客户端的拓扑关系数据;所述拓扑关系数据至少包括各Leaf客户端的本地下联设备列表;
其中,基于已建立MQTT连接的所述服务端的遗嘱消息及所述服务端的共享操作,将所述Leaf客户端的拓扑关系数据更新至同一RoCE-SAN网络中相应的若干远端Leaf客户端,所述装置具体能够:
所述服务端根据来自所述Leaf客户端的遗嘱消息或更新后的所述遗嘱消息,确定所述Leaf客户端的在线状态;
在所述Leaf客户端为在线状态的情况下,实时确定所述Leaf客户端的拓扑关系数据,并将所述拓扑关系数据同步至各所述远端Leaf客户端;
在所述Leaf客户端为离线状态的情况下,向各所述远端Leaf客户端发送所述Leaf客户端的空拓扑关系数据,以通过所述空拓扑关系数据,删除各所述远端Leaf客户端中的预先存储的所述Leaf客户端的历史拓扑关系数据。
8.一种基于MQTT的拓扑关系保鲜的非易失性计算机存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令设置为:
Leaf客户端生成本地下联设备列表;以及
与相应的上联服务端建立消息队列遥测传输MQTT连接,以基于已建立MQTT连接的所述服务端的遗嘱消息及所述服务端的共享操作,将所述Leaf客户端的拓扑关系数据更新至同一RoCE-SAN网络中相应的若干远端Leaf客户端;其中,所述leaf客户端与所述服务端预先部署MQTT协议;所述远端Leaf客户端为通过MQTT网络订阅所述Leaf客户端的远端设备;所述遗嘱消息用于表征所述Leaf客户端的在线状态;
根据相应的上联服务端的共享操作,更新拓扑信息表中的已被所述Leaf客户端订阅的至少一个Leaf客户端的拓扑关系数据;所述拓扑信息表包括本地Leaf客户端及被订阅Leaf客户端的拓扑关系数据;所述拓扑关系数据至少包括各Leaf客户端的本地下联设备列表;
其中,基于已建立MQTT连接的所述服务端的遗嘱消息及所述服务端的共享操作,将所述Leaf客户端的拓扑关系数据更新至同一RoCE-SAN网络中相应的若干远端Leaf客户端,具体包括:
所述服务端根据来自所述Leaf客户端的遗嘱消息或更新后的所述遗嘱消息,确定所述Leaf客户端的在线状态;
在所述Leaf客户端为在线状态的情况下,实时确定所述Leaf客户端的拓扑关系数据,并将所述拓扑关系数据同步至各所述远端Leaf客户端;
在所述Leaf客户端为离线状态的情况下,向各所述远端Leaf客户端发送所述Leaf客户端的空拓扑关系数据,以通过所述空拓扑关系数据,删除各所述远端Leaf客户端中的预先存储的所述Leaf客户端的历史拓扑关系数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211638425.6A CN115987871B (zh) | 2022-12-19 | 2022-12-19 | 一种基于mqtt的拓扑关系保鲜方法、装置及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211638425.6A CN115987871B (zh) | 2022-12-19 | 2022-12-19 | 一种基于mqtt的拓扑关系保鲜方法、装置及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115987871A CN115987871A (zh) | 2023-04-18 |
CN115987871B true CN115987871B (zh) | 2024-07-26 |
Family
ID=85969351
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211638425.6A Active CN115987871B (zh) | 2022-12-19 | 2022-12-19 | 一种基于mqtt的拓扑关系保鲜方法、装置及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115987871B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117411792B (zh) * | 2023-12-15 | 2024-02-13 | 深圳中科德能科技有限公司 | 智能箱连接发现方法、装置、设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110278248A (zh) * | 2019-05-29 | 2019-09-24 | 平安科技(深圳)有限公司 | 遗嘱消息分发方法、装置及计算机可读存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106657130B (zh) * | 2017-01-09 | 2020-05-19 | 上海浦东软件园汇智软件发展有限公司 | 一种基于mqtt的访问认证的方法及设备 |
CN110048927B (zh) * | 2018-01-16 | 2020-12-15 | 华为技术有限公司 | 通信方法和通信装置 |
US10938663B2 (en) * | 2018-05-07 | 2021-03-02 | Servicenow, Inc. | Discovery and management of devices |
CN111327524B (zh) * | 2018-12-14 | 2022-06-07 | 中国电信股份有限公司 | 流量转发方法、系统、sdn控制器及计算机可读存储介质 |
CN113347623B (zh) * | 2020-02-18 | 2023-11-07 | 佛山市云米电器科技有限公司 | 子设备的上线方法及系统 |
CN113157449A (zh) * | 2021-04-16 | 2021-07-23 | 上海寰果信息科技有限公司 | 基于mqtt的实时流数据分析处理方法 |
-
2022
- 2022-12-19 CN CN202211638425.6A patent/CN115987871B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110278248A (zh) * | 2019-05-29 | 2019-09-24 | 平安科技(深圳)有限公司 | 遗嘱消息分发方法、装置及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115987871A (zh) | 2023-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108199897B (zh) | 一种支持缓存管理的opc ua多服务器聚合方法 | |
US8767751B2 (en) | Unsolicited FIP packet injection by proxy and spoofing and autoconfiguring intermediate bridges using FIP snooping | |
EP2586163B1 (en) | Notifying a controller of a change to a packet forwarding configuration of a network element over a communication channel | |
US8335236B2 (en) | FCoE isolated port channels and FCoE session resynchronization in vPC/MCEC environments using DCBXP | |
CN101577722A (zh) | 实现强制mac转发功能的方法和装置 | |
KR20050003346A (ko) | Nas snmp 단일 시스템 이미지 | |
EP3562107A1 (en) | Broadcast packet processing method and processing apparatus, controller, and switch | |
CN105450779B (zh) | 一家电设备连接多服务器的方法 | |
US20180241695A1 (en) | Direct replying actions in sdn switches | |
CN102916897B (zh) | 一种实现vrrp负载分担的方法和设备 | |
TWI740210B (zh) | 終端設備管理方法及伺服器 | |
US11601360B2 (en) | Automated link aggregation group configuration system | |
CN104980355A (zh) | 一种sdn环境下的源端可控组播数据传输方法及系统 | |
CN113595806B (zh) | 一种基于opcua与mqtt协议的配网物联网通讯架构方法 | |
CN100479415C (zh) | 一种实现数据通讯的系统及其方法 | |
WO2022253087A1 (zh) | 一种数据传输方法、节点、网络管理器及系统 | |
CN110149218A (zh) | 一种告警信息的处理方法和装置 | |
CN115987871B (zh) | 一种基于mqtt的拓扑关系保鲜方法、装置及介质 | |
CN110213340A (zh) | 箱式交换机的云管理方法、交换机、服务器及平台 | |
CN115022180B (zh) | 一种基于RoCE-SAN的拓扑管理方法、装置、设备及介质 | |
CN104202255A (zh) | 一种高效多链路数据传输实现方法 | |
CN111585791A (zh) | 一种数据同步配置方法、系统及存储介质 | |
CN106533775B (zh) | 虚拟化成员设备及邻居发现方法 | |
CN109413142B (zh) | 一种Linux下的iSCSI虚拟代理实现方法 | |
CN104518902A (zh) | 一种应用软件定义网络优化二层网络流量的方法和设备 |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Country or region after: China Address after: 250101 s01-6 / F, No. 1036, Langchao Road, high tech Zone, Jinan City, Shandong Province Applicant after: Inspur Network Technology (Shandong) Co.,Ltd. Address before: 250101 s01-6 / F, No. 1036, Langchao Road, high tech Zone, Jinan City, Shandong Province Applicant before: INSPUR CISCO NETWORK TECHNOLOGY Co.,Ltd. Country or region before: China |
|
GR01 | Patent grant | ||
GR01 | Patent grant |