基于星型拓扑架构的消息传输方法与流程

文档序号:11774263阅读:1750来源:国知局
基于星型拓扑架构的消息传输方法与流程

本发明属于软件技术中的数据传输领域,具体涉及到基于星型拓扑架构的消息传输方法。



背景技术:

现今,分布式环境优势凸显使越来越多企业选择搭建分布式系统,但无疑也面临着因数据集成和系统整合带来的数据管理问题,尤以分布式数据调用备受关注;随之,分布式对象调用技术,比如orba、dcom、rmi等rpc中间件技术应运而生。rpc指基于远程过程调用(remoteprocedurecall,rpc)的中间件,允许一个应用程序中的过程调用远程应用程序中的过程,就好像它们是本地调用一样。该中间件实现一个查找远程过程的链接机制并使调用方能够以透明方式使用这些过程。以前,这种类型的中间件处理基于过程的程序;现在,它还包括基于对象的组件。rpc中间件技术采用客户机/服务器模式:请求程序是一个客户机,而服务提供程序是一个服务器;首先,客户机调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡眠状态直到调用信息到达为止;当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后,客户端调用进程接收答复信息,获得进程结果,然后调用执行继续进行。虽然rpc同步处理技术能有效解决跨区域的数据同步问题,但面对大规模的复杂分布式系统,rpc同步处理在性能、健壮性、可扩展性上等方面都存在局限性。

传统的跨数据中心数据同步传输如图1所示,现有a、b、c、d四个数据中心,为了保证数据在这四个数据中心内的同步,共需要建立12条复制传输通道;按这样的构造方式,若后期还有增加一个新站点的需求,则需要再增加8条复制传输通道,才能完成各点的数据同步,这样无限制的增加通道,无疑降低了数据传输的稳定,影响数据传输效率。

星型拓扑结构是指各工作站以星型方式连接成网,网络的中央节点和其他节点直接相连,又称为“集中式网络”。在星型拓扑结构中,网络中的各节点通过点到点的方式连接到一个中央节点(又称中央转接站)上,并由该中央节点向目的节点传送信息。星型网中任何两个节点要进行通信都必须经过中央节点控制,对中心节点依赖性强。



技术实现要素:

本发明的目的是,提供一种基于星型拓扑架构的消息传输方法,通过按照星型拓扑结构构建消息队列的中心节点和非中心节点,形成以中心节点为传输中介的消息同步结构;同时在各中心节点和非中心节点配置中间程序,用于控制同步数据的传递方向,负责从消息源端获取数据,发送至消息目的地。

本发明的技术方案如下:基于星型拓扑架构的消息传输方法,具体流程包括:

步骤1:设置消息传递的源头和目的,包括:

步骤101:按照星型拓扑结构的特征,构建中心节点和非中心节点,非中心节点通过中心节点进行消息同步;消息传递的源头构建中心节点、消息传递的目的地构建非中心节点即目标节点;

步骤102:根据消息传递的源头和目的即消息同步传输方向,为非中心节点配置节点角色,包括源节点和目标节点;所述源节点为消息发送方,目标节点为消息接收方;

步骤2:按照非中心节点的数目,构建并配置中心节点和非中心节点之间的中间件模块,用于实现从源节点拉取同步数据,并按照指定传输方向发送同步数据至目标节点;

特别地,每一个作为目标节点的非中心节点,均有一个中间件模块;作为数据传输中介的中间节点是各个非中心节点的目标节点,中间节点内的中间件模块配置与非中心节点的保持对应,包括中间件模块数量和非中心节点数量一致,且中间件模块和非中心节点一一对应;

特别地,中间件模块包括消息拉取子模块和消息发送子模块,所述子模块配置的内容包括:

(1)定义各个非中心节点之间需要执行同步的队列名称;

(2)定义需要数据同步的非中心节点和中心节点的地址;

(3)配置异常情况的报警人信息;

步骤3:启动各个中间件子模块,按照步骤2中的配置内容,明确有数据同步需求的非中心节点;并根据中间件模块所在的节点位置,确定消息的生产者和消费者,其中源节点是消息的生产者,目标节点是消息的消费者;分别对应消息传递的源头和目的;

步骤4:中间件模块的消息拉取子模块实时获取消费者消息队列(下文称:第二消息队列)中的消息,并记录消息偏移量;同时,中间件模块的消息拉取子模块主动抓取生产者消息队列(下文称:第一消息队列)中的消息,记录消息偏移量;

所述消息偏移量是消息队列中当前读取消息的位置与队列中初始位置的差值;

所述消息队列是用于在消息传输过程中保存消息的容器;

步骤5:通过比对第二消息队列的消息偏移量和第一消息队列的消息偏移量,如果消息偏移量保持一致,说明源节点没有新产生数据;如果消息偏移量不一致,确定本次数据同步过程中的消息数据,具体见步骤6;

步骤6:中间件模块将消费者消息队列的消息偏移量经由中心节点,提交至生产者;

步骤7:生产者结合自身队列的消息偏移量和消费者消息队列的消息偏移量,计算获得自身队列中的新增数据,并将新增数据通过中心节点内的中间件模块,传送至中心节点;

步骤8:当中心节点收到新增数据后,配置在消费者端的中间件模块从中心节点中

自动抽取新增数据至消费者的消息队列中;

步骤9:配置在目标节点处的中间件模块持续地抓取生产者和消费者的消息队列,

循环执行

步骤4-步骤8;

特别地,生产者端发送消息和消费者端接收消息是异步进行,一个生产者端能同时向多个消费者端发送消息;

本发明与现有技术相比,其有益效果:

(1)本发明通过在源节点和目标节点之间配置中间件模块,借助中间件模块自动抽取源节点的更新数据,自动识别消息生产者和消费者,并通过比对双方的消息队列,实时控制同步数据的消息传递,有效地实现多节点间的大数据量实时同步问题;

(2)本发明利用星型拓扑结构的特征构建消息队列的中心节点和非中心节点,形成以中心节点为传输中介的消息同步结构,本发明有助于解决传统点对点传输模式带来的大量重复数据传输问题,解决传统数据同步结构中的链路繁杂的问题,极大降低数据节点间的同步消息链路数,有效节省带宽和机器资源。

附图说明

图1为本发明实施例中传统的跨数据中心数据同步传输结构图;

图2为本发明实施例中基于星型拓扑架构的消息传输结构图;

图3为本发明实施例中基于星型拓扑结构的跨数据中心数据同步传输结构图;

图4为本发明实施例中基于星型拓扑架构的消息传输流程示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,首先对本发明实施中的术语做以解释:

所述消息偏移量是消息队列中当前读取消息的位置与队列中初始位置的差值;

所述消息队列是用于在消息传输过程中保存消息的容器(中的数据序列);

接下来,结合附图和具体实施例对本发明进行详细描述。

图2为本发明实施例中基于星型拓扑架构的消息传输结构图,按照星型拓扑结构的特征构构建中心节点c和非中心节点a、b、d;其中,每一个非中心内分别配置中间件模块,中间件模块包括如下子模块,依次为中间件模块a、中间件模块b、中间件模块d;

每一个中间件模块包括消息拉取子模块和消息发送子模块,提前配置的内容包括:

(1)定义各个非中心节点之间需要执行同步的消息队列名称;

(2)定义需要数据同步的非中心节点和中心节点的地址;

(3)配置异常情况的报警人信息;

中间节点内按照非中心节点的数量,配置与非中心节点相对应的中间件模块a、b、d,用于从各非中心节点a、b、c中拉取有数据同步需求的数据;各中心节点内的中间件模块用于从中心节点c内拉取需要同步至自身的数据;

本发明实施例适用于多种数据同步情景下,图3为本发明实施例中基于星型拓扑结构的跨数据中心数据同步传输结构图,图示中的标识为“mm”的是中间件模块,用来同步各节点间的消息。图中共4个节点,以tc为中国电信的数据中心,local为国内数据中心,usa为美国数据中心,cnc为中国网通的数据中心;当在国内数据中心local产生的数据需要同步至美国数据中心时,先由中国电信数据中心内的中间件模块从local中自动抽取已更新的数据,并分析应同步到的数据中心地址,即美国数据中心usa,然后再由中国电信数据中心发送至美国数据中心。这样做的目的是减少和usa创建过多的链路,降低网络不稳定的风险。同时由于中间件模块不依赖于各个节点,所以中间程序可以任意部署,拓扑结构可以任意构建。

图4为本发明实施例中基于星型拓扑架构的消息传输流程示意图,通过按照星型拓扑结构构建消息队列的中心节点和非中心节点,形成以中心节点为传输中介的消息同步结构;同时在各中心节点和非中心节点配置中间程序,用于控制同步数据的传递方向,负责从消息源端获取数据,发送至消息目的地,具体步骤包括:

步骤401:设置消息传递的源头和目的,包括:

步骤401-1:按照星型拓扑结构的特征,构建中心节点和非中心节点,非中心节点通过中心节点进行消息同步;

步骤401-2:根据消息同步传输方向,为非中心节点配置节点角色,包括源节点和目标节点;所述源节点为消息发送方,目标节点为消息接收方;

步骤402:按照非中心节点的数目,构建并配置中心节点和非中心节点之间的中间件模块,用于实现从源节点拉取同步数据,并按照指定传输方向发送同步数据至目标节点;

步骤403:启动各个中间件模块,按照步骤2中的配置内容,明确有数据同步需求的非中心节点;并根据中间件模块所在的节点位置,确定消息的生产者和消费者,其中源节点是消息的生产者,目标节点是消息的消费者;

步骤404:中间件模块的消息拉取子模块实时获取消费者消息队列(下文称:第二消息队列)中的消息,并记录消息偏移量;同时,中间件模块的消息拉取子模块主动抓取生产者消息队列(下文称:第一消息队列)中的消息,记录消息偏移量;

步骤405:通过比对第二消息队列的消息偏移量和第一消息队列的消息偏移量,如果消息偏移量保持一致,说明源节点没有新产生数据;如果消息偏移量不一致,确定本次数据同步过程中的消息数据,具体见步骤6;

步骤406:中间件模块将消费者消息队列的消息偏移量经由中心节点,提交至生产者;

步骤407:生产者结合自身队列的消息偏移量和消费者消息队列的消息偏移量,计算获得自身队列中的新增数据,并将新增数据通过中心节点内的中间件模块,传送至中心节点;

步骤408:当中心节点收到新增数据后,配置在消费者端的中间件模块从中心节点中自动抽取新增数据至消费者的消息队列中。

以上说明和描述了本发明的基本原理、主要方法,实施例并非限定保护范围,本发明方法的保护范围以权利要求及相关解释为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1