CN111669427B - 一种软件定义网络发布订阅***和方法 - Google Patents
一种软件定义网络发布订阅***和方法 Download PDFInfo
- Publication number
- CN111669427B CN111669427B CN202010314160.9A CN202010314160A CN111669427B CN 111669427 B CN111669427 B CN 111669427B CN 202010314160 A CN202010314160 A CN 202010314160A CN 111669427 B CN111669427 B CN 111669427B
- Authority
- CN
- China
- Prior art keywords
- node
- sequencing
- message
- cache
- controller
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/58—Message adaptation for wireless communication
-
- 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/50—Network services
- H04L67/55—Push-based network services
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1881—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with schedule organisation, e.g. priority, sequence management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/40—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5682—Policies or rules for updating, deleting or replacing the stored data
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明实施例提供一种软件定义网络发布订阅***和方法。包括:控制器、管理员控制器、定序子***和消息多备份缓存子***。其中,所述控制器用于处理集群内发布订阅事务,包括用于为消息生成有序序号的定序节点和用于对消息缓存的缓存节点;所述管理员控制器用于同时承担所述控制器功能以及用于管理所述软件定义网络;所述定序子***用于实现所述管理员控制器与定序节点间的协同定序;所述消息多备份缓存子***用于经由管理员控制器和缓存节点实现消息的一致性。本发明通过各模块相互作用,实现了在SDN的发布订阅***之上各订阅者对消息和消息序号的共识一致性。
Description
技术领域
本发明涉及消息通信领域,尤其涉及一种软件定义网络发布订阅***和方法。
背景技术
软件定义网络(Software Defined Network,SDN)是由美国斯坦福大学提出的一种新型网络创新架构,是网络虚拟化的一种实现方式。在软件架构中,发布订阅是一种消息范式,消息的发送者(称为发布者)不会将消息直接发送给特定的接收者(称为订阅者)。而是将发布的消息分为不同的类别,无需了解哪些订阅者(如果有的话)可能存在。
基于SDN的发布订阅***结合了发布订阅***和SDN网络的特点,借助SDN网络控制转发分离、集中控制以及可编程的特点,解决了传统网络中的实时性、安全性等问题,同时结合发布订阅***的特点,将消息通信双方解耦,具体的消息转发、路由计算功能由***提供,最终构建了一个稳定、高效的消息中间件网络。同时也是一个实现快速传输,去中心化的消息通信网络。
但是,随着基于SDN的发布订阅***规模的不断壮大,消息的增多。***需要实现消息以及消息序号的共识性。消息的共识主要是指如果某一条消息被传递到一个订阅者,那么所有订阅该消息的订阅者都能收到该消息;消息序号的共识是指消息在***中的全局有序性。而基于SDN发布订阅***是一个分布式的去中心化的***,所以目前的分布式共识机制都不能直接应用于此***中。
发明内容
本发明实施例提供一种软件定义网络发布订阅***,通过各模块之间的作用,实现了在SDN的发布订阅***之上各订阅者对消息和消息序号的共识一致性。
第一方面,本发明实施例提供一种软件定义网络发布订阅***,包括:
控制器、管理员控制器、定序子***和消息多备份缓存子***;
所述控制器用于处理集群内发布订阅事务,包括用于为消息生成有序序号的定序节点和用于对消息缓存的缓存节点;
所述管理员控制器用于同时承担所述控制器功能以及用于管理所述软件定义网络;
所述定序子***用于实现所述管理员控制器与定序节点间的协同定序;
所述消息多备份缓存子***用于经由管理员控制器和缓存节点实现消息的一致性。
可选地,所述定序子***用于:
根据管理员令牌驱动所述控制器中的定序节点对消息进行定序,当所述定序节点是多定序节点时,采用分布式定序方式批量对消息进行定序;
所述定序节点通过二次广播的方式将序号下发。
可选地,所述定序子***,具体包括:
定序节点选择模块,用于通过所述管理员控制器实现对所述定序节点的选择;
定序节点崩溃管理模块,用于通过所述管理员控制器实现对所述定序节点的崩溃管理;
管理员控制器崩溃管理模块,用于通过所述定序节点实现对所述管理员控制器崩溃管理;或者
管理员控制器重选模块,用于通过所述定序节点实现对所述管理员控制器重选。
可选地,所述定序节点选择模块进一步用于:
以主题树为单位,为每一棵主题树定义一个定序节点;
根据所述定序节点在发布节点发布消息时对消息进行监听;
所述定序节点崩溃管理模块,进一步用于:根据网络内各集群拓扑情况以及各集群节点发布情况,通过定序节点选择算法,选择定序节点,
将选择的所述定序节点通过广播发给管理员控制器;
其中,所述管理员控制器根据收到的所述定序节点的回复,认定所述定序节点是否崩溃。
可选地,所述管理员控制器崩溃管理模块,进一步用于:
启动定序线程,向所述管理员控制器发送启动成功的消息;
根据接收到的所述管理员控制器的回复,判定所述管理员控制器是否崩溃;
所述管理员控制器重选模块,进一步用于:
向除本定序节点外的其他所述定序节点发送投票申请,并投本定序节点一票;
根据收到的其他所述定序节点发送的消息,选出新的管理员控制器。
可选地,所述消息多备份缓存子***,具体包括:
选择缓存节点模块,用于选出包括临时缓存节点、网络边缘缓存节点和备份缓存节点的所述缓存节点;
管理消息缓存模块,用于实现对消息的持久化存储,采取双层索引的方式,实现消息的快速查找;
同步节点间消息模块,用于同步临时缓存节点、网络边缘缓存节点和备份缓存节点之间的消息。
可选地,所述选择缓存节点模块,进一步用于:
将消息的发布节点定义为临时缓存节点;
根据***的发布订阅情况和物理连接情况将发布集群分为不少于1个发布组,并在每个发布组中选择一个中心发布集群作为网络边缘缓存节点;
在所述发布组的消息转发路径上选择不少于1个集群节点作为该网络边缘缓存节点的备份缓存节点。
可选地,所述同步节点间消息模块,进一步用于:
通过所述临时缓存节点定时向所述网络边缘缓存节点批量发送消息;
通过所述网络边缘缓存节点将消息的id号与序号进行匹配,匹配成功后,将消息按照序号顺序缓存在文件中,并将配对好的id号与序号列表发送给所述备份缓存节点;
通过所述备份缓存节点计算当前缺失的消息,并返回给所述网络边缘缓存节点其缺失的消息的序号;
通过所述网络边缘缓存节点将所述备份缓存节点缺失的消息同步到所述备份缓存节点。
第二方面,本发明实施例提供了一种软件定义网络发布订阅方法,包括:
发送管理员令牌给定序节点;
所述定序节点对消息进行定序,当所述定序节点是多定序节点时,采用分布式定序方式批量对消息进行定序并通过广播将序号下发;
根据网络内各集群拓扑情况以及各集群节点发布情况,选择定序节点,并将选择的所述定序节点通过广播发送;
根据收到的所述定序节点的回复,确定所述定序节点是否崩溃;和/或
发送启动线程成功的消息,根据接收到的反馈信息,判定管理员控制器是否崩溃。
可选地,所述方法还包括:
将消息的发布节点定义为临时缓存节点,从发布组中选择中心发布集群作为网络边缘缓存节点,在所述发布组的消息转发路径上选择集群节点作为该网络边缘缓存节点的备份缓存节点;
通过所述网络边缘缓存节点对消息持久化存储;
通过所述临时缓存节点定时向所述网络边缘缓存节点批量发送消息;基于网络边缘缓存节点将消息的id号与序号的匹配,将消息按照序号顺序缓存在文件中;通过所述备份缓存节点计算当前缺失的消息,通过所述网络边缘缓存节点将所述备份缓存节点缺失的消息同步到所述备份缓存节点。
本发明实施例提供的软件定义网络发布订阅***,包括控制器、管理员控制器、定序子***和消息多备份缓存子***,通过管理员令牌驱动所述控制器中的定序节点对消息进行定序,并通过二次广播的方式将确定的序号下发;还通过消息多备份缓存子***实现了网络边缘缓存节点及其备份节点的同步。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明软件定义网络发布订阅***的***架构图;
图2为本发明实施例定序节点崩溃管理状态图;
图3为本发明实施例管理员崩溃管理状态图;
图4为本发明实施例管理员重选状态图;
图5为本发明实施例发布组、网络边缘缓存节点和备份缓存节点关系图;
图6为本发明实施例消息备份同步时序图;
图7为本发明实施例提供的一种软件定义网络发布订阅方法流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供一种软件定义网络发布订阅***,包括:
控制器、管理员控制器、定序子***和消息多备份缓存子***;
所述控制器用于处理集群内发布订阅事务,包括用于为消息生成有序序号的定序节点和用于对消息缓存的缓存节点;
所述管理员控制器用于同时承担所述控制器功能以及用于管理所述软件定义网络;
所述定序子***用于实现所述管理员控制器与定序节点间的协同定序;
所述消息多备份缓存子***用于经由管理员控制器和缓存节点实现消息的一致性。
具体地,本发明实施例提供的软件定义网络发布订阅***还包括发布节点,该发布节点用于给用户提供一个发布消息的接口,可接收用户发布的消息,并为每一条消息生成一个唯一id编号,最后将消息与唯一id封装在一起进行转发。所述发布订阅***还包括订阅节点,该订阅节点用于给用户提供订阅接口,以及负责将消息与序号相对应,并在确实消息或者消息编号时进行查询请求。所述发布订阅***还包括交换机,主要负责根据控制器下发的转发规则对消息进行转发。
其中,控制器主要用于承担集群内发布订阅事务的处理,同时还具备对物理环境处理的拓扑管理、路由管理以及流表管理等功能,是SDN的核心组件之一。除此之外,在控制器之上还定义了定序节点以及缓存节点的概念,定序节点负责为消息生成有序序号,缓存节点实现对消息的缓存。其中,管理员控制器是一种特殊的控制器,同时具备了控制器的功能以及对整个网络管理的功能。
定序子***主要用于实现管理员控制器与定序节点间的协同定序,除此之外,管理员控制器还负责定序节点的选择、定序节点的崩溃管理、定序节点负责管理员崩溃管理以及管理员崩溃后进行管理员重选。
消息多备份缓存子***用于选择缓存节点、管理消息缓存和同步节点间的消息。其中,管理员控制器负责对缓存节点的选择,控制器中的缓存节点用于管理消息缓存,网络边缘缓存节点用于实现与备份缓存节点间消息的一致性。
作为本发明的一种实施例,所述定序子***用于:
根据管理员令牌驱动所述控制器中的定序节点对消息进行定序,当所述定序节点是多定序节点时,采用分布式定序方式批量对消息进行定序;
所述定序节点通过二次广播的方式将序号下发。
具体地,定序子***用于实现管理员控制器与定序节点的协同定序;其中,定序过程采取管理员控制器通过令牌驱动定序节点定序,当定序节点为多定序节点时,采取分布式定序的方式批量的对消息进行定序,定序完成后定序节点通过二次广播的方式进行序号下发。
作为本发明的一种实施例,所述定序子***,具体包括:
定序节点选择模块,用于通过所述管理员控制器实现对所述定序节点的选择;
定序节点崩溃管理模块,用于通过所述管理员控制器实现对所述定序节点的崩溃管理;
管理员控制器崩溃管理模块,用于通过所述定序节点实现对所述管理员控制器崩溃管理;或者
管理员控制器重选模块,用于通过所述定序节点实现对所述管理员控制器重选。
具体地,定序子***包括以下模块:定序节点选择模块、定序节点崩溃管理模块、管理员控制器崩溃管理模块和管理员控制器重选模块。各个模块通过管理员控制器和定序节点的配合,分别用于实现对定序节点的选择和崩溃管理,对管理员控制器的崩溃管理以及重选。
作为本发明的一种实施例,所述定序节点选择模块,进一步用于:
以主题树为单位,为每一棵主题树定义一个定序节点;
根据所述定序节点在发布节点发布消息时对消息进行监听;
所述定序节点崩溃管理模块,进一步用于:根据网络内各集群拓扑情况以及各集群节点发布情况,通过定序节点选择算法,选择定序节点,
将选择的所述定序节点通过广播发给管理员控制器;
其中,所述管理员控制器根据收到的所述定序节点的回复,认定所述定序节点是否崩溃。
具体地,定序节点选择模块以订阅发布***中的主体树为单位,为每一个主体树定义一个定序节点,并通过每个主体树的定序节点对发布节点发布的消息进行监听。
进一步地,如图2所示,定序节点崩溃管理模块具体作用是:
1、通过管理员控制器根据网络内的集群拓扑情况以及各集群节点发布情况,通过定序节点选择算法选择合适定序节点,并将选择结果通过广播的形式下发给各控制器,管理员控制器等待各定序节点创建成功的回复。
2、对于在超时时间内,管理员控制器收到的回复,有以下四种情况:
a)管理员控制器收到所有定序节点创建成功的回复,此时认定定序列表下发成功,且所有定序节点初始化成功,此时进入步骤4;
b)管理员控制器收到多于半数的定序节点的回复,此时认定未收到回复的定序节点可能出现问题,所以将这些定序节点在列表中删除,并重复步骤1;
c)管理员控制器收到少于半数的定序节点的回复,此时认为管理员列表下发过程可能出现问题,所以重新下发定序节点列表,并记录下发次数;
d)管理员控制器连续下发列表次数超过阈值,此时认定管理员出现问题。
3、管理员控制器进入持有令牌状态,并准备下发令牌,管理员控制器向令牌环中的下一个定序节点发送令牌的起始序号,并等待当前定序节点的回复。
4、在超时时间内,定序节点的回复有以下三种情况:
a)管理员控制器收到当前定序节点的回复,回复中包括终止序号,此时进入步骤5;
b)管理员控制器未收到回复,且重传次数未超过重传阈值,管理员控制器向定序节点重传令牌的起始序号,且记录重传次数;
c)管理员控制器未收到回复,且重传次数超过重传阈值,此时认定定序节点崩溃,冻结令牌,将定序节点在列表中删除,重复步骤1。
5、管理员控制器进入令牌下发准备状态,管理员控制器向当前节点正式下发令牌。
6、在超时时间内,定序节点的回复有以下三种情况:
a)管理员控制器收到当前定序节点的回复,此时令牌回到管理员控制器手中,重复步骤3;
b)管理员控制器未收到回复,且重传次数未超过重传阈值,管理员控制器向定序节点重传令牌,且记录重传次数;
c)管理员控制器未收到回复,且重传次数超过重传阈值,此时认定定序节点崩溃,冻结令牌,将定序节点在列表中删除,重复步骤1。
作为本发明的一种实施例,所述管理员控制器崩溃管理模块,进一步用于:
启动定序线程,向所述管理员控制器发送启动成功的消息;
根据接收到的所述管理员控制器的回复,判定所述管理员控制器是否崩溃;
所述管理员控制器重选模块,进一步用于:
向除本定序节点外的其他所述定序节点发送投票申请,并投本定序节点一票;
根据收到的其他所述定序节点发送的消息,选出新的管理员控制器。
具体地,如图3所示,管理员控制器崩溃管理模块具体作用是:
1.通过控制器收到管理员控制器的定序节点列表且当前集群在列表中,表示当前集群已被选中为定序节点,此时定序节点启动定序线程,并向管理员控制器发送启动成功的消息;
2.定序节点进入等待令牌状态,在超时时间内,收到管理员控制器的回复主要有以下两种情况:
a)定序节点收到管理员控制器发送的令牌初始序号,此时进入步骤3;
b)定序节点再次收到集群列表消息,回复管理员控制器已启动的消息,重置超时时间,返回步骤2;
c)定序节点未收到任何消息,此时认定管理员控制器崩溃,进入管理员控制器重选模块;
3.定序节点计算当前消息队列内的消息数量,得到终止序号,并回复给管理员控制器;
4.此时定序节点进入令牌接收准备状态,准备接收令牌,在超时时间内,收到管理员控制器的回复主要有以下两种情况:
a)定序节点收到管理员控制器发送的令牌消息,定序节点进入持有令牌状态,开始为消息队列中的消息分配序号,并将序号进行广播,并发送令牌释放消息,将令牌进行释放,返回步骤2;
b)定序节点再次收到令牌初始序号,回复管理员控制器终止序号,重置超时时间,重复步骤4;
c)定序节点未收到任何消息,此时认定管理员控制器崩溃,进入管理员控制器重选模块。
进一步地,如图4所示,管理员控制器重选模块的具体作用是:
1.当定序节点超时未收到管理员控制器的消息,此时认定管理员控制器崩溃,并主动发起选举。向其他节点发送投票申请,并投自己一票,等待其他节点的回复;
2.根据来自其他节点的消息,可能出现四种结果:
a)收到超过半数的投票(含自己的一票),则赢得选举,成为新的管理员控制器,进入步骤3;
b)被告知别人已当选,那么自行切换到正常运行状态;
c)超时时间内,没有收到超过半数的投票,则进入等待状态,等待时间过后,重新进入步骤1;
d)收到当前定序节点已被删除的消息,表示节点已是不可用的,定序节点主动关闭服务;
3.当前定序节点赢得了选举之后,成为新的管理员控制器,会立刻给所有节点发消息,避免其余节点触发新的选举。并向节点发送序号同步请求并同步当前序号。
作为本发明的一种实施例,所述消息多备份缓存子***,具体包括:
选择缓存节点模块,用于选出包括临时缓存节点、网络边缘缓存节点和备份缓存节点的所述缓存节点;
管理消息缓存模块,用于实现对消息的持久化存储,采取双层索引的方式,实现消息的快速查找;
同步节点间消息模块,用于同步临时缓存节点、网络边缘缓存节点和备份缓存节点之间的消息。
具体地,消息多备份缓存子***包括选择缓存节点模块、管理消息缓存模块和同步节点间消息模块。消息多备份缓存子模块的作用通过管理员控制器与缓存节点共同完成;其中,管理员控制器负责缓存节点的选择,缓存节点负责实现代价最小多点缓存机制且能够实现消息的快速查找,以及实现多点备份一致性。
作为本发明的一种实施例,所述选择缓存节点模块,进一步用于:
将消息的发布节点定义为临时缓存节点;
根据***的发布订阅情况和物理连接情况将发布集群分为不少于1个发布组,并在每个发布组中选择一个中心发布集群作为网络边缘缓存节点;
在所述发布组的消息转发路径上选择不少于1个集群节点作为该网络边缘缓存节点的备份缓存节点。
具体地,选择缓存节点模块用于定义和选择***中的各缓存节点,以使得消息的备份能够顺利进行。包括:将消息的发布节点定义为临时缓存节点;根据***的发布订阅情况和物理连接情况将发布集群分为不少于1个发布组,并在每个发布组中选择一个中心发布集群作为网络边缘缓存节点;以及在所述发布组的消息转发路径上选择不少于1个集群节点作为该网络边缘缓存节点的备份缓存节点。选举和定义不同的缓存节点是实现节点间消息同步的前提条件。
作为本发明的一种实施例,所述同步节点间消息模块,进一步用于:
通过所述临时缓存节点定时向所述网络边缘缓存节点批量发送消息;
通过所述网络边缘缓存节点将消息的id号与序号进行匹配,匹配成功后,将消息按照序号顺序缓存在文件中,并将配对好的id号与序号列表发送给所述备份缓存节点;
通过所述备份缓存节点计算当前缺失的消息,并返回给所述网络边缘缓存节点其缺失的消息的序号;
通过所述网络边缘缓存节点将所述备份缓存节点缺失的消息同步到所述备份缓存节点。
具体地,如图5所示,当消息发布时,通过消息转发路径发送给订阅者,各备份节点通过旁路监听的方式在路径上获取消息,并先将消息缓存在内存中。同时,临时缓存节点也通过旁路监听的方式获得到主题消息。随后临时缓存节点通过与网络边缘缓存节点间的可靠连接,定时将消息批量发送给网络边缘缓存节点。因为消息在网络传输中可能会发生丢失,而且本***的消息转发路径是多源最小非联通子图,所以备份缓存节点不可能在所有发布节点的转发路径上,因此无法收到发布组中发布集群发布的所有消息,网络边缘缓存节点会定时向备份缓存节点进行消息同步,以保证多点缓存间的一致性。
为了能够实现节点之间消息的同步,如图6所示,在消息发布时,临时缓存节点与备份缓存节点都对消息进行旁路监听,并先都将消息保存在内存中。其中,临时缓存节点定时向网络边缘缓存节点批量发送消息,并设此时消息id号为m-n。随后,网络边缘缓存节点将消息的id号与序号进行匹配,若是有消息缺失序号则向定序节点进行缺失序号请求。当所有消息匹配成功后,将消息按照序号顺序缓存在文件中,保存成功后将配对好的id号与序号列表发送给备份缓存节点,备份缓存节点计算当前缺失的消息,并返回缺失消息的序号。网络边缘缓存节点将备份缓存节点缺失的消息同步到备份缓存节点,备份缓存节点将收到的缺失的消息缓存在文件中,并返回同步成功。此时网络边缘缓存节点也将同步成功的消息返回给临时缓存节点,临时缓存节点将消息在内存中删除。至此完成对消息m-n的一致性同步。
如图7所示,本发明实施例还提供了一种基于上述软件定义网络发布订阅***的一种软件定义网络发布订阅方法,包括:
步骤101,发送管理员令牌给定序节点;
步骤102,所述定序节点对消息进行定序,当所述定序节点是多定序节点时,采用分布式定序方式批量对消息进行定序并通过广播将序号下发;
步骤103,根据网络内各集群拓扑情况以及各集群节点发布情况,选择定序节点,并将选择的所述定序节点通过广播发送;
步骤104,根据收到的所述定序节点的回复,确定所述定序节点是否崩溃;和/或
步骤105,发送启动线程成功的消息,根据接收到的反馈信息,判定管理员控制器是否崩溃。
具体地,定序子***通过管理员控制器与定序节点的协同作用对消息实现定序。其中定序过程包括,管理员控制器向定序节点发送管理员令牌,定序节点收到管理员令牌后对消息进行定序,当定序节点为多定序节点时,采取分布式定序的方式批量的对消息进行定序,定序完成后定序节点通过二次广播的方式进行序号下发。
进一步地,定序子***的作用还包括对定序节点的崩溃管理和对管理员控制器的崩溃管理。其中对定序节点的崩溃管理包括:
1、通过管理员控制器根据网络内的集群拓扑情况以及各集群节点发布情况,通过定序节点选择算法选择合适定序节点,并将选择结果通过广播的形式下发给各控制器,管理员控制器等待各定序节点创建成功的回复。
2、对于在超时时间内,管理员控制器收到的回复,有以下四种情况:
a)管理员控制器收到所有定序节点创建成功的回复,此时认定定序列表下发成功,且所有定序节点初始化成功,此时进入步骤4;
b)管理员控制器收到多于半数的定序节点的回复,此时认定未收到回复的定序节点可能出现问题,所以将这些定序节点在列表中删除,并重复步骤1;
c)管理员控制器收到少于半数的定序节点的回复,此时认为管理员列表下发过程可能出现问题,所以重新下发定序节点列表,并记录下发次数;
d)管理员控制器连续下发列表次数超过阈值,此时认定管理员出现问题。
3、管理员控制器进入持有令牌状态,并准备下发令牌,管理员控制器向令牌环中的下一个定序节点发送令牌的起始序号,并等待当前定序节点的回复。
4、在超时时间内,定序节点的回复有以下三种情况:
a)管理员控制器收到当前定序节点的回复,回复中包括终止序号,此时进入步骤5;
b)管理员控制器未收到回复,且重传次数未超过重传阈值,管理员控制器向定序节点重传令牌的起始序号,且记录重传次数;
c)管理员控制器未收到回复,且重传次数超过重传阈值,此时认定定序节点崩溃,冻结令牌,将定序节点在列表中删除,重复步骤1。
5、管理员控制器进入令牌下发准备状态,管理员控制器向当前节点正式下发令牌。
6、在超时时间内,定序节点的回复有以下三种情况:
a)管理员控制器收到当前定序节点的回复,此时令牌回到管理员控制器手中,重复步骤3;
b)管理员控制器未收到回复,且重传次数未超过重传阈值,管理员控制器向定序节点重传令牌,且记录重传次数;
c)管理员控制器未收到回复,且重传次数超过重传阈值,此时认定定序节点崩溃,冻结令牌,将定序节点在列表中删除,重复步骤1。
对管理员控制器的崩溃管理,具体包括:
1.通过控制器收到管理员控制器的定序节点列表且当前集群在列表中,表示当前集群已被选中为定序节点,此时定序节点启动定序线程,并向管理员控制器发送启动成功的消息;
2.定序节点进入等待令牌状态,在超时时间内,收到管理员控制器的回复主要有以下两种情况:
a)定序节点收到管理员控制器发送的令牌初始序号,此时进入步骤3;
b)定序节点再次收到集群列表消息,回复管理员控制器已启动的消息,重置超时时间,返回步骤2;
c)定序节点未收到任何消息,此时认定管理员控制器崩溃,进入管理员控制器重选模块;
3.定序节点计算当前消息队列内的消息数量,得到终止序号,并回复给管理员控制器;
4.此时定序节点进入令牌接收准备状态,准备接收令牌,在超时时间内,收到管理员控制器的回复主要有以下两种情况:
a)定序节点收到管理员控制器发送的令牌消息,定序节点进入持有令牌状态,开始为消息队列中的消息分配序号,并将序号进行广播,并发送令牌释放消息,将令牌进行释放,返回步骤2;
b)定序节点再次收到令牌初始序号,回复管理员控制器终止序号,重置超时时间,重复步骤4;
c)定序节点未收到任何消息,此时认定管理员控制器崩溃,进入管理员控制器重选模块。
作为本发明的一种实施例,所述方法还包括:
将消息的发布节点定义为临时缓存节点,从发布组中选择中心发布集群作为网络边缘缓存节点,在所述发布组的消息转发路径上选择集群节点作为该网络边缘缓存节点的备份缓存节点;
通过所述网络边缘缓存节点对消息持久化存储;
通过所述临时缓存节点定时向所述网络边缘缓存节点批量发送消息;基于网络边缘缓存节点将消息的id号与序号的匹配,将消息按照序号顺序缓存在文件中;通过所述备份缓存节点计算当前缺失的消息,通过所述网络边缘缓存节点将所述备份缓存节点缺失的消息同步到所述备份缓存节点。
具体地,消息多备份缓存子***由管理员控制器与缓存节点共同完成,管理员控制器负责缓存节点的选择、消息的缓存管理以及实现消息的一致性。
选举和定义不同的缓存节点是实现节点间消息同步的前提条件,其中,缓存节点的选择包括:将消息的发布节点定义为临时缓存节点,临时缓存节点用于定时向网络边缘缓存节点批量发送消息;根据***的发布订阅情况和物理连接情况将发布集群分为不少于1个发布组,并在每个发布组中选择一个中心发布集群作为网络边缘缓存节点,边缘网络缓存节点用于接收临时缓存节点发送的消息,并将消息的id和序号进行匹配;网络边缘缓存节点还负责消息的缓存管理,并采取双层索引的方式,实现对消息的快速查找。对于备份节点的选择,是在所述发布组的消息转发路径上选择不少于1个集群节点作为该网络边缘缓存节点的备份缓存节点,备份缓存节点用于备份网络边缘缓存节点的消息。
对于网络边缘缓存节点和备份缓存节点的消息同步,当消息发布时,消息多备份缓存子***通过临时缓存节点与备份缓存节点都对消息进行旁路监听,并先都将消息保存在内存中。其中,临时缓存节点定时向网络边缘缓存节点批量发送消息,并设此时消息id号为m-n。随后,网络边缘缓存节点将消息的id号与序号进行匹配,若是有消息缺失序号则向定序节点进行缺失序号请求。当所有消息匹配成功后,将消息按照序号顺序缓存在文件中,保存成功后将配对好的id号与序号列表发送给备份缓存节点,备份缓存节点计算当前缺失的消息,并返回缺失消息的序号。网络边缘缓存节点将备份缓存节点缺失的消息同步到备份缓存节点,备份缓存节点将收到的缺失的消息缓存在文件中,并返回同步成功。此时网络边缘缓存节点也将同步成功的消息返回给临时缓存节点,临时缓存节点将消息在内存中删除,从而完成消息同步。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (6)
1.一种软件定义网络发布订阅***,其特征在于,包括:
控制器、管理员控制器、定序子***和消息多备份缓存子***;
所述控制器用于处理集群内发布订阅事务,包括用于为消息生成有序序号的定序节点和用于对消息缓存的缓存节点;
所述管理员控制器用于同时承担所述控制器功能以及用于管理所述软件定义网络;
所述定序子***用于实现所述管理员控制器与定序节点间的协同定序;
所述消息多备份缓存子***用于经由管理员控制器和缓存节点实现消息的一致性;
其中,所述消息多备份缓存子***,具体包括:
选择缓存节点模块,用于选出包括临时缓存节点、网络边缘缓存节点和备份缓存节点的所述缓存节点;
管理消息缓存模块,用于实现对消息的持久化存储,采取双层索引的方式,实现消息的快速查找;
同步节点间消息模块,用于同步临时缓存节点、网络边缘缓存节点和备份缓存节点之间的消息;
所述选择缓存节点模块,进一步用于:
将消息的发布节点定义为临时缓存节点;
根据***的发布订阅情况和物理连接情况将发布集群分为不少于1个发布组,并在每个发布组中选择一个中心发布集群作为网络边缘缓存节点;
在所述发布组的消息转发路径上选择不少于1个集群节点作为该网络边缘缓存节点的备份缓存节点;
所述同步节点间消息模块,进一步用于:
通过所述临时缓存节点定时向所述网络边缘缓存节点批量发送消息;
通过所述网络边缘缓存节点将消息的id号与序号进行匹配,匹配成功后,将消息按照序号顺序缓存在文件中,并将配对好的id号与序号列表发送给所述备份缓存节点;
通过所述备份缓存节点计算当前缺失的消息,并返回给所述网络边缘缓存节点其缺失的消息的序号;
通过所述网络边缘缓存节点将所述备份缓存节点缺失的消息同步到所述备份缓存节点。
2.根据权利要求1所述的***,其特征在于,所述定序子***用于:
根据管理员令牌驱动所述控制器中的定序节点对消息进行定序,当所述定序节点是多定序节点时,采用分布式定序方式批量对消息进行定序;
所述定序节点通过二次广播的方式将序号下发。
3.根据权利要求2所述的***,其特征在于,所述定序子***,具体包括:
定序节点选择模块,用于通过所述管理员控制器实现对所述定序节点的选择;
定序节点崩溃管理模块,用于通过所述管理员控制器实现对所述定序节点的崩溃管理;
管理员控制器崩溃管理模块,用于通过所述定序节点实现对所述管理员控制器崩溃管理;或者
管理员控制器重选模块,用于通过所述定序节点实现对所述管理员控制器重选。
4.根据权利要求3所述的***,其特征在于,所述定序节点选择模块进一步用于:
以主题树为单位,为每一棵主题树定义一个定序节点;
根据所述定序节点在发布节点发布消息时对消息进行监听;
所述定序节点崩溃管理模块,进一步用于:根据网络内各集群拓扑情况以及各集群节点发布情况,通过定序节点选择算法,选择定序节点,
将选择的所述定序节点通过广播发给管理员控制器;
其中,所述管理员控制器根据收到的所述定序节点的回复,认定所述定序节点是否崩溃。
5.根据权利要求3所述的***,其特征在于,所述管理员控制器崩溃管理模块,进一步用于:
启动定序线程,向所述管理员控制器发送启动成功的消息;
根据接收到的所述管理员控制器的回复,判定所述管理员控制器是否崩溃;
所述管理员控制器重选模块,进一步用于:
向除本定序节点外的其他所述定序节点发送投票申请,并投本定序节点一票;
根据收到的其他所述定序节点发送的消息,选出新的管理员控制器。
6.一种软件定义网络发布订阅方法,其特征在于,包括:
发送管理员令牌给定序节点;
所述定序节点对消息进行定序,当所述定序节点是多定序节点时,采用分布式定序方式批量对消息进行定序并通过广播将序号下发;
根据网络内各集群拓扑情况以及各集群节点发布情况,选择定序节点,并将选择的所述定序节点通过广播发送;
根据收到的所述定序节点的回复,确定所述定序节点是否崩溃;和/或
发送启动线程成功的消息,根据接收到的反馈信息,判定管理员控制器是否崩溃;
将消息的发布节点定义为临时缓存节点,从发布组中选择中心发布集群作为网络边缘缓存节点,在所述发布组的消息转发路径上选择集群节点作为该网络边缘缓存节点的备份缓存节点;
通过所述网络边缘缓存节点对消息持久化存储;
通过所述临时缓存节点定时向所述网络边缘缓存节点批量发送消息;基于网络边缘缓存节点将消息的id号与序号的匹配,将消息按照序号顺序缓存在文件中;通过所述备份缓存节点计算当前缺失的消息,通过所述网络边缘缓存节点将所述备份缓存节点缺失的消息同步到所述备份缓存节点。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010314160.9A CN111669427B (zh) | 2020-04-20 | 2020-04-20 | 一种软件定义网络发布订阅***和方法 |
PCT/CN2020/114952 WO2021212726A1 (zh) | 2020-04-20 | 2020-09-14 | 一种软件定义网络发布订阅***和方法 |
US17/966,759 US11729133B2 (en) | 2020-04-20 | 2022-10-14 | Software defined network publish-subscribe system and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010314160.9A CN111669427B (zh) | 2020-04-20 | 2020-04-20 | 一种软件定义网络发布订阅***和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111669427A CN111669427A (zh) | 2020-09-15 |
CN111669427B true CN111669427B (zh) | 2022-06-07 |
Family
ID=72382835
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010314160.9A Active CN111669427B (zh) | 2020-04-20 | 2020-04-20 | 一种软件定义网络发布订阅***和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11729133B2 (zh) |
CN (1) | CN111669427B (zh) |
WO (1) | WO2021212726A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113489792B (zh) * | 2021-07-07 | 2023-02-03 | 上交所技术有限责任公司 | 一种在跨数据中心集群共识算法中减少数据中心间网络传输次数的方法 |
CN114844909A (zh) * | 2022-03-31 | 2022-08-02 | 顾松林 | 基于互联网的共识机制查询*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104079614A (zh) * | 2013-03-29 | 2014-10-01 | 国际商业机器公司 | 用于分布式发布订阅***消息有序获取的方法和*** |
CN105915419A (zh) * | 2015-11-25 | 2016-08-31 | 北京邮电大学 | 一种基于sdn的无线接入控制器部署方法 |
CN107888499A (zh) * | 2017-11-17 | 2018-04-06 | 北京邮电大学 | 一种基于sdn的发布订阅***及消息转发方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7958257B2 (en) * | 2005-01-19 | 2011-06-07 | International Business Machines Corporation | Message filtering and demultiplexing system |
CN102984174B (zh) * | 2012-12-21 | 2016-04-06 | 北京邮电大学 | 一种发布订阅***中可靠性保障方法及*** |
CN103534988B (zh) * | 2013-06-03 | 2017-04-12 | 华为技术有限公司 | 消息发布与订阅的方法及装置 |
US9473418B2 (en) * | 2013-12-12 | 2016-10-18 | International Business Machines Corporation | Resource over-subscription |
WO2017096564A1 (zh) * | 2015-12-09 | 2017-06-15 | 北京大学深圳研究生院 | 一种基于内容的集中式路由体系架构mccn |
US10594760B2 (en) * | 2017-01-25 | 2020-03-17 | Futurewei Technologies, Inc. | Intelligent event streaming |
CN106933989B (zh) * | 2017-02-22 | 2021-01-05 | 深圳云视融通科技有限公司 | 一种网上发布信息***及方法 |
US10868742B2 (en) * | 2017-03-29 | 2020-12-15 | Juniper Networks, Inc. | Multi-cluster dashboard for distributed virtualization infrastructure element monitoring and policy control |
US20180302343A1 (en) * | 2017-04-14 | 2018-10-18 | Argela Yazilim ve Bilisim Teknolojileri San. ve Tic. A.S. | System and method for convergence of software defined network (sdn) and network function virtualization (nfv) |
CN107257295B (zh) * | 2017-06-14 | 2020-04-14 | 广州市品高软件股份有限公司 | 一种分布式架构软件定义网络控制器的调度方法 |
CN109561127A (zh) * | 2017-09-27 | 2019-04-02 | 上海诺基亚贝尔股份有限公司 | 用于软件定义网络中的数据同步的方法、设备和计算机可读介质 |
JP6926979B2 (ja) * | 2017-11-15 | 2021-08-25 | 富士通株式会社 | データ収集方法、情報処理装置および分散処理システム |
US20190208032A1 (en) * | 2017-12-29 | 2019-07-04 | General Electric Company | Subscription acknowledgments |
-
2020
- 2020-04-20 CN CN202010314160.9A patent/CN111669427B/zh active Active
- 2020-09-14 WO PCT/CN2020/114952 patent/WO2021212726A1/zh active Application Filing
-
2022
- 2022-10-14 US US17/966,759 patent/US11729133B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104079614A (zh) * | 2013-03-29 | 2014-10-01 | 国际商业机器公司 | 用于分布式发布订阅***消息有序获取的方法和*** |
CN105915419A (zh) * | 2015-11-25 | 2016-08-31 | 北京邮电大学 | 一种基于sdn的无线接入控制器部署方法 |
CN107888499A (zh) * | 2017-11-17 | 2018-04-06 | 北京邮电大学 | 一种基于sdn的发布订阅***及消息转发方法 |
Non-Patent Citations (1)
Title |
---|
基于SDN发布订阅***中多媒体传输质量保证方案的设计与实现;张冠群;《中国优秀硕士学位论文全文数据库 信息科技辑》;20190815;正文5.1-5.4部分 * |
Also Published As
Publication number | Publication date |
---|---|
US20230038425A1 (en) | 2023-02-09 |
CN111669427A (zh) | 2020-09-15 |
WO2021212726A1 (zh) | 2021-10-28 |
US11729133B2 (en) | 2023-08-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11729133B2 (en) | Software defined network publish-subscribe system and method | |
CN103562890B (zh) | 在发布/订阅消息***中管理消息订阅的方法和*** | |
JPH1040226A (ja) | 分散コンピューティング環境におけるグループ・リーダ回復の方法 | |
JP3589378B2 (ja) | 分散コンピューティング環境におけるグループ・リーダ回復のためのシステム | |
US6298072B1 (en) | Real-time transaction synchronization among peer authentication systems in a telecommunications network environment | |
TWI454917B (zh) | Access control method, access control device and access control program | |
JPH1040229A (ja) | 分散コンピューティング環境におけるプロセッサ・グループへの加入を管理するためのシステム | |
CN113760468A (zh) | 分布式选举方法、装置、***和介质 | |
CN110971686A (zh) | 一种支持高并发、高可用的电子商城客服*** | |
WO2014010014A1 (ja) | ツリー構造の管理方法、情報処理システム、及び、プログラム | |
CN103634411A (zh) | 一种具有状态一致性的市场数据实时广播***及方法 | |
CN110417882B (zh) | 主节点的确定方法、装置和存储介质 | |
CN109560903B (zh) | 一种完全容灾的车载指挥通信*** | |
CN108390919A (zh) | 一种用于高可靠双机热备的消息同步***及方法 | |
CN104468722A (zh) | 一种航管训练***中训练数据分类存储的方法 | |
Sethi et al. | Design and Optimization of a Zookeeper and Kafka-Based Messaging Broker for Asynchronous Processing in High Availability and Low Latency Applications | |
EP2071764B1 (en) | A method, device and communication system thereof of electing local master | |
CN109831372B (zh) | 消息同步方法及即时通讯*** | |
CN113055461B (zh) | 一种基于ZooKeeper的无人集群分布式协同指挥控制方法 | |
CN108924240A (zh) | 基于一致性协议的分布式处理方法、装置及存储介质 | |
CN114448995A (zh) | 基于raft选主策略的分布式计算方法 | |
CN209134427U (zh) | 一种完全容灾的车载指挥通信*** | |
CN113220473A (zh) | 数据存储方法及*** | |
CN111541759A (zh) | 一种云平台通信***及其通信方法 | |
JP2022550536A (ja) | トランザクション管理方法、システム、ネットワーク機器及び読み取り可能な記憶媒体 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |