CN113098914B - 消息总线系统及消息传输方法、装置、电子设备 - Google Patents
消息总线系统及消息传输方法、装置、电子设备 Download PDFInfo
- Publication number
- CN113098914B CN113098914B CN201911335945.8A CN201911335945A CN113098914B CN 113098914 B CN113098914 B CN 113098914B CN 201911335945 A CN201911335945 A CN 201911335945A CN 113098914 B CN113098914 B CN 113098914B
- Authority
- CN
- China
- Prior art keywords
- engine
- access
- message
- forwarding
- node
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/566—Grouping or aggregating service requests, e.g. for unified processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40006—Architecture of a communication node
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/567—Integrating service provisioning from a plurality of service providers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种消息总线系统及消息传输方法、装置、电子设备,以解决相关技术中现有的组网方式导致消息总线的复杂度和成本较高、且扩展性差的问题。所述消息总线系统包括核心层和接入层,核心层包括转发引擎,接入引擎包括多个接入引擎,且转发引擎分别与各个接入引擎连接;接入引擎用于接收来自生产者节点的第一消息并转发给转发引擎,以使转发引擎将第一消息转发给订阅第一消息主题的消费者节点;以及,接收来自转发引擎的第二消息并将第二消息发送给订阅第二消息主题的消费者节点;转发引擎用于接收来自各个接入引擎中的第一接入引擎的消息,并基于预置的路由表将消息转发给订阅消息主题的消费者节点所对应的第二接入引擎。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种消息总线系统及消息传输方法、装置、电子设备。
背景技术
随着通信技术的发展,消息总线在跨业务系统的消息通讯、异步处理、应用解耦、流量削峰等场景中得到了广泛使用,其可以降低业务系统开发的工作量和简化业务系统组网。特别是在商业互联网、智慧城市、电信数据处理、电网管理等大数据领域,消息总线更是得到了广泛的应用。消息总线通常具有异构业务系统间消息的接收、保存(持久化)、路由、分发、超时重传等功能,其中分发功能又可以分为普通分发、保序分发、基于事务的分发等模式。
现有的消息总线通常采用Kafka集群的组网方式,生产者节点和消费者节点之前解耦,生产者节点推送到集群中的数据按照主题TOPIC分区方式保存在集群内的各个主机上,而消费者节点则需要按照分组从指定的主题分区中拉取数据。然而,对于存在大量分散异构的生产者节点和消费者节点且业务流量大、实时性要求高的复杂业务组网场景,采用现有的组网方式将导致消息总线的复杂度和成本较高,且可扩展性差。
发明内容
本申请实施例的目的是提供一种消息总线系统及消息传输方法、装置、电子设备,以解决相关技术中现有的组网方式导致消息总线的复杂度和成本较高、且扩展性差的问题。
为解决上述技术问题,本申请实施例是这样实现的:
第一方面,本申请实施例提供了一种消息总线系统,包括核心层和接入层,所述核心层包括转发引擎,所述接入引擎包括多个接入引擎,且所述转发引擎分别与所述多个接入引擎连接;
所述接入引擎,用于接收来自生产者节点的第一消息并转发给所述转发引擎,以使所述转发引擎将所述第一消息转发给订阅所述第一消息主题的消费者节点;以及,接收来自所述转发引擎的第二消息并将所述第二消息发送给订阅所述第二消息主题的消费者节点;
所述转发引擎,用于接收来自所述多个接入引擎中的第一接入引擎的消息,并基于预置的路由表将所述消息转发给订阅所述消息主题的消费者节点所对应的第二接入引擎,以使所述第二接入引擎将所述消息发送给订阅所述消息主题的消费者节点。
第二方面,本申请实施例提供了一种消息传输方法,所述消息总线系统包括核心层和接入层,所述核心层转发引擎,所述接入层包括多个接入引擎,且所述转发引擎分别与所述多个接入引擎连接,所述方法包括:
所述多个接入引擎中的第一接入引擎接收来自生产者节点的消息并转发给所述消息总线系统的转发引擎;
所述转发引擎基于预置的路由表将所述消息转发给订阅所述消息主题的消费者节点所对应的第二接入引擎;
所述第二接入引擎将所述消息发送给订阅所述消息主题的消费者节点。
第三方面,本申请实施例提供了一种消息传输方法,所述方法应用于所述消息总线系统中的转发引擎,所述转发引擎分别与所述消息总线系统中的多个接入引擎连接,所述方法包括:
接收所述消息总线系统中的第一接入引擎发送的消息,所述消息是所述第一接入引擎转发的来自所述第一接入引擎对应的生产者节点的消息;
基于预置的路由表确定订阅所述消息主题的消费者节点所对应的第二接入引擎;
将所述消息转发给所述第二接入引擎,以使所述第二接入引擎将所述消息发送给订阅所述消息主题的消费者节点。
第四方面,本申请实施例提供了一种消息传输方法,所述方法应用于所述消息总线系统中的管理引擎,所述管理引擎分别与生产者节点和消费者节点连接,所述方法包括:
基于来自所述生产者节点的注册信息和所述消息总线系统中的接入引擎的负荷状态,从所述消息总线的接入引擎中确定分配给所述生产者节点的接入引擎;
基于来自所述消费者节点的注册信息和所述消息总线系统中的接入引擎的负荷状态,从所述消息总线的接入引擎中确定分配给所述消费者节点的接入引擎;
向所述生产者节点发送所分配的接入引擎信息,以供所述生产者与该接入引擎建立连接,以通过该连接向该接入引擎推送消息;
向所述消费者节点发送所分配的接入引擎信息,以供所述消费者与该接入引擎建立连接,以通过该连接从该接入引擎接收订阅消息,其中,所述订阅消息是所述消息总线系统中的转发引擎接收到的来自其他接入引擎且基于预置的路由表转发的给所述消费者节点所连接的接入引擎的。
第五方面,本申请实施例提供了一种消息传输装置,所述方法应用于所述消息总线系统中的转发引擎,所述转发引擎分别与所述消息总线系统中的多个接入引擎连接,所述装置包括:
第一接收模块,用于接收所述消息总线系统中的第一接入引擎发送的消息,所述消息是所述第一接入引擎转发的来自所述第一接入引擎对应的生产者节点的消息;
第一确定模块,用于基于预置的路由表确定订阅所述消息主题的消费者节点所对应的第二接入引擎;
第一发送模块,用于将所述消息转发给所述第二接入引擎,以使所述第二接入引擎将所述消息发送给订阅所述消息主题的消费者节点。
第六方面,本申请实施例提供了一种消息传输装置,所述方法应用于所述消息总线系统中的管理引擎,所述管理引擎分别与生产者节点和消费者节点连接,所述装置包括:
第二确定模块,用于基于来自所述生产者节点的注册信息和所述消息总线系统中的接入引擎的负荷状态,从所述消息总线的接入引擎中确定分配给所述生产者节点的接入引擎;
第三确定模块,用于基于来自所述消费者节点的注册信息和所述消息总线系统中的接入引擎的负荷状态,从所述消息总线的接入引擎中确定分配给所述消费者节点的接入引擎;
第二发送模块,用于向所述生产者节点发送所分配的接入引擎信息,以供所述生产者与该接入引擎建立连接,以通过该连接向该接入引擎推送消息;
第三发送模块,用于向所述消费者节点发送所分配的接入引擎信息,以供所述消费者与该接入引擎建立连接,以通过该连接从该接入引擎接收订阅消息,其中,所述订阅消息是所述消息总线系统中的转发引擎接收到的来自其他接入引擎且基于预置的路由表转发的给所述消费者节点所连接的接入引擎的。
第七方面,本申请实施例提供了一种电子设备,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现如第三方面或第四方面所述的消息传输方法。
第八方面,本申请实施例提供了一种计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备够执行如第三方面或第四方面所述的消息传输方法。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
采用分层化的架构方式分为核心层和接入层两部分,通过接入层中的接入引擎将各个生产者节点的业务数据进行汇聚以及向各个消费者节点发送相应的业务数据,可以实现生产者节点和消费者节点规模的扩展,且相比于相关技术中采用kafka集群的组网方式,可以有效控制转发引擎的规模,简化核心层的业务链路;通过核心层中的转发引擎进行业务数据的路由转发,可以实现消息总线系统的转发能力扩展,且核心层链路规模适度,适合高速转发,进而可以保障消息总线系统的性能和可扩展性。由于接入层和核心层均具有可伸缩性,因而可满足大数据业务的扩展需求。此外,核心层的转发引擎在接收到第一接入引擎发送的消息后基于预置的路由表将该消息转发给订阅该消息主题的消费者节点所对应的第二接入引擎,这种基于实时流的数据处理方式使得转发引擎接收/发送的数据不落盘,进而可以避免磁盘IO对消息总线系统的性能产生影响,满足海量数据转发时对消息总线的性能要求。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的一种消息总线系统的结构示意图。
图2为本申请实施例提供的一种消息总线系统中的消息传输示意图。
图3为本申请实施例提供的一种消息总线系统的应用场景示意图。
图4为本申请实施例提供的一种消息总线系统中的转发引擎和接入引擎的结构示意图。
图5为本申请实施例提供的一种生产者节点和消费者节点的注册方法流程图。
图6为本申请实施例提供的一种消息总线系统的结构框图。
图7为本申请实施例提供的一种消息传输方法的流程图。
图8为本申请实施例提供的一种消息传输方法的流程图,其中,所述方法应用于消息总线系统中的转发引擎。
图9为本申请实施例提供的一种消息传输方法的流程图,其中,所述方法应用于消息总线系统中的管理引擎。
图10为本申请实施例提供的一种消息传输装置的框图,其中,所述装置应用于消息总线系统中的转发引擎。
图11为本申请实施例提供的一种消息传输装置的框图,其中,所述装置应用于消息总线系统中的管理引擎。
图12为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本申请各实施例提供的技术方案。
参照图1,图1为本申请实施例提供的消息总线系统的结构示意图。如图1所示,所述消息总线系统包括核心层和接入层,其中,所述接入层包括多个接入引擎110,所述核心层包括转发引擎120,且转发引擎120分别与各个接入引擎110连接,每一接入引擎110可分别与至少一个消费者节点和/或至少一个生产者节点连接。示例地,转发引擎120与各个接入引擎110之间建立有长链接,以通过该长链接进行数据交互;接入引擎110可分别与各个消费者节点和各个生产者节点之间建立长链接,以通过该长链接进行数据交互。
接入引擎110可用于接收来自生产者节点的第一消息并转发给转发引擎120,以使转发引擎120将所述第一消息转发给订阅所述第一消息的主题的消费者节点。接入引擎110还可用于接收来自转发引擎120的第二消息并将所述第二消息发送给订阅所述第二消息的主题的消费者节点。其中,第一消息和第二消息可以是相同主题的消息,也可以是不同主题的消息。
转发引擎120可用于接收来自所述多个接入引擎中的第一接入引擎的消息,并基于预置的路由表将所述消息转发给订阅所述消息主题的消费者节点对应的第二接入引擎,以使所述第二接入引擎将所述消息发送给订阅所述消息主题的消费者节点。其中,所述第一接入引擎可以是所述多个接入引擎中的任一接入引擎,所述第二接入引擎可以是所述多个接入引擎中除所述第一接入引擎以外的任一接入引擎。
其中,转发引擎120中预置的路由表可记录有该转发引擎120所连接的各个接入引擎的标识、所连接的各个引擎与生产者节点和消费者节点之间的链路信息、每条链路的发送消息类型及接收消息类型、分发规则(如组内均分、hash分发)以及分组名等,分发规则可以包括组内均分(即同一主题TOPIC组内的消费者节点平均地消费该消息)和hash分发(即根据消息的指定指端计算hash值并将该消息发送给订阅该主题的消息组内的某一消费者节点)等。示例性地,表1示出了一种路由表。
表1
接入引擎 | 链路 | 发送消息类型 | 接收消息类型 | 分发类型 | 分组名 |
Ⅰ | A | topIC1 | - | - | - |
Ⅰ | B | - | topIC1 | average(组内均分) | group1 |
Ⅰ | C | - | topIC1/2 | average(组内均分) | group1 |
Ⅰ | D | - | topIC2 | average(组内均分) | group2 |
Ⅱ | A | topIC1 | - | - | - |
Ⅱ | B | topIC2 | - | - | - |
Ⅱ | C | - | topIC1 | average(组内均分) | group2 |
Ⅱ | D | - | topIC2 | average(组内均分) | group2 |
以表1所示的路由表为例,如图2所示,转发引擎接收到接入引擎Ⅰ(第一接入引擎)发送的主题为TOPIC1的消息,基于该路由表可确定订阅主题TOPIC1的消费者节点所连接的接入引擎为接入引擎Ⅱ且对应的链路为链路LINKC,则将该消息转发给接入引擎Ⅱ,由接入引擎Ⅱ通过链路LINKC将该消息发送给订阅主题TOPIC1的消费者节点。
需要说明的是,在实际应用中,可以有多个生产者节点,也可以有多个消费者节点,这些生产者节点和消费者节点可以分布于不同的区域(如地理区域)。相应地,对于每一区域,可在靠近该区域内生产者节点和/或消费者节点的主机上部署一个或多个接入引擎110,由此,该接入引擎110(为了方便描述,以下称为第一接入引擎)可用于汇聚该区域内所有生产者节点发送的消息并将汇聚后的消息发送给核心层的转发引擎120,以通过转发引擎120将各个消息转发给其他区域中相应的接入引擎(为了方便描述,以下称为第二接入引擎),该接入引擎110也可接收转发引擎120转发的消息并将该消息发送给该区域内订阅该消息主题的消费者节点。当然,为了减少网络流量以最大化消息总线系统的性能,对于同一区域内的生产者节点和消费者节点,对应该区域的接入引擎可接收该区域内的生产者节点发送的消息并直接将该消息发送给该区域内订阅该消息主题的消费者节点,而无需通过转发引擎120进行转发。
示例性地,如图3所示,所述消息总线系统的接入层包括分别对应于区域A至区域F的接入引擎110,对应署于区域A的接入引擎(第一接入引擎)汇聚区域A内各个生产者节点发送的消息,并将汇聚后的消息发送给核心层的转发引擎120,转发引擎120则根据预置的路由表确定相应的接入引擎为对应于区域D的接入引擎(第二接入引擎),则将该消息发送给该第二接入引擎,以通过该第二接入引擎将该消息发送给区域D内订阅该消息主题的消费者节点。
还需要进一步说明的是,转发引擎120的数量可以为一个或多个,且转发引擎120两两之间互连,以保证第一接入引擎发送的消息最多经由两个转发引擎120就可以达到对应的第二接入引擎。
可以理解,本申请实施例所述的消息总线系统,采用分层化的架构方式分为核心层和接入层两部分,通过接入层中的接入引擎将各个生产者节点的业务数据进行汇聚以及向各个消费者节点发送相应的业务数据,可以实现生产者节点和消费者节点规模的扩展,且相比于相关技术中采用kafka集群的组网方式,可以有效控制转发引擎的规模,简化核心层的业务链路;通过核心层中的转发引擎进行业务数据的路由转发,可以实现消息总线系统的转发能力扩展,且核心层链路规模适度,适合高速转发,进而可以保障消息总线系统的性能和可扩展性。由于接入层和核心层均具有可伸缩性,因而可满足大数据业务的扩展需求。此外,核心层的转发引擎在接收到第一接入引擎发送的消息后基于预置的路由表将该消息转发给订阅该消息主题的消费者节点所对应的第二接入引擎,这种基于实时流的数据处理方式使得转发引擎接收/发送的数据不落盘,进而可以避免磁盘IO对消息总线系统的性能产生影响,满足海量数据转发时对消息总线的性能要求。
进一步地,如图4所示,在本申请实施例所述的消息总线系统中,为了避免接入引擎110与生产者节点、消费者节点以及转发引擎120等任一者之间的连接中断时接入引擎110中的数据丢失以及因消费者节点出现处理瓶颈大熬制接入引擎110出现数据积压,每一接入引擎110可采用两级缓存结构。
示例性地,一级缓存可以为内存,二级缓存可以为数据库。在正常的消息传输情况下,来自生产者节点的消息和待发送给消费者节点的消息均在一级缓存中流转,以保障实时业务流的处理以及避免接入引擎110与生产者节点、消费者节点以及转发引擎120等任一者之间的连接中断时业务流数据的丢失;而在一级缓存中流转的消息数据量达到一级缓存的预定存储容量时,将流转的消息写入二级缓存中。
进一步地,如图4所示,在本申请实施例所述的消息总线系统中,为了避免转发引擎120与各个接入引擎110之间的连接中断时经由转发引擎120路由的数据丢失,转发引擎120同样可采用两级缓存结构。
示例性地,转发引擎120的一级缓存可以为内存,二级缓存可以为数据库。在正常的消息传输情况下,转发引擎120通过其接收通道接收到的消息和待通过发送通道发出的消息均在一级缓存中流转,以保证实时业务流的处理以及避免转发引擎120与任一接入引擎110之间的连接中断时路由的消息丢失;而在一级缓存中流转的消息数据量达到一级缓存的预定存储容量时,将流转的消息写入二级缓存中。
在本申请的另一个实施例中,如图1所示,所述消息总线系统的核心层还包括管理引擎130,其中,管理引擎130可以分别与生产者接节点、消费者节点、各个接入引擎110和转发引擎120连接(如长链接),其具有对生产者节点和消费者节点的注册、接入、注销和分组以及接入引擎和转发引擎的分配进行管理等功能。下面分别对管理引擎130的各项功能进行说明。
在一种可选的实施方式中,管理引擎130可用于负责生产者节点和消费者节点的注册。具体地,管理引擎130可用于接收生产者节点发送的注册信息,并基于生产者节点的注册信息和多个接入引擎各自的负荷状态,从接入层的所有接入引擎中确定分配给该生产者节点的接入引擎且将该接入引擎信息返回给该生产者节点,以供该生产者节点与该接入引擎建立连接。
其中,生产者节点的注册信息可以包括生产者节点待发送消息的主题,该主题可以是基于TOPIC NAME或TOPIC ID的方式定义的。接入引擎的负荷状态可以例如包括接入引擎的当前可用负荷,所述当前可用负荷可以是基于该接入引擎的最大可接入负荷、当前已连接的生产者节点和消费者节点各自的最大负荷(如最大链路数、最大接入流量以及最大处理报文数等指标)进行计算得到的。
示例性地,如图5所示,生产者节点可基于预置的管理引擎130的服务端口与管理引擎130建立连接,并通过连接向管理引擎130发送注册信息,其中注册信息中携带有预先配置的待发送消息的主题。管理引擎130在接收到生产者节点的注册信息后,可根据待发送消息的主题、各个接入引擎110各自的负荷状态及所连接的生产者节点或消费者节点的位置,确定分配给该生产者节点的接入引擎并将该接入引擎信息(如该接入引擎的服务端口标识)返回给该生产者节点。进一步地,生产者节点基于所分配的接入引擎信息与所分配的接入引擎建立长链接,由此,生产者节点可向所分配的接入引擎发送消息。
管理引擎130还可用于接收消费者节点发送的注册信息,并基于消费者节点的注册信息和转发引擎的负荷状态,从接入层的所有接入引擎中确定分配给该消费者节点的接入引擎并将该接入引擎信息返回给该消费者节点,以供该消费者节点与该接入引擎建立连接。
其中,消费者节点的注册信息可以包括消费者节点待订阅消息的主题、订阅该主题的分组名及组内分发规则等,该主题也可以是基于TOPIC NAME或TOPIC ID的方式定义的。接入引擎的负荷状态可以例如包括接入引擎的当前可用负荷,所述当前可用负荷可以是基于该接入引擎的最大可接入负荷、当前已连接的生产者节点和消费者节点各自的最大负荷(如最大链路数、最大接入流量以及最大处理报文数等指标)进行计算得到的。
示例性地,如图5所示,消费者节点可基于预置的管理引擎130的服务端口与管理引擎130建立连接,并通过连接向管理引擎130发送注册信息,其中,注册信息中携带有预先配置的待订阅消息的主题、订阅该主题的分组名及组内分发规则等。管理引擎130在接收到消费者节点的注册信息后,可根据待订阅消息的主题、订阅该主题的分组名及组内分发规则、各个接入引擎110各自的负荷状态及所连接的生产者节点或消费者节点的位置,确定分配给该消费者节点的接入引擎并将该接入引擎信息(如该接入引擎的服务端口标识)返回给该消费者节点。进一步地,消费者节点基于所分配的接入引擎信息与所分配的接入引擎建立长链接,由此,消费者节点可接收所分配的接入引擎转发得到待订阅消息主题的消息。
可以理解,在本申请实施例所述的消息总线系统中,通过在核心层增设管理引擎并由管理引擎负责生产者节点和消费者节点的注册,基于生产者节点和消费者节点各自的注册信息以及各个接入引擎的负荷状态为生产者节点和消费者节点分配接入引擎,使得在注册过程中,生产者节点和消费者节点只需在注册信息中携带消息主题、分组名以及组内分发规则等信息,即可完成业务自动接入,无需人工干预,注册效率高且节省了人力成本,且进而简化了生产者节点和消费者节点的实现流程以及业务接入流程。
进一步地,管理引擎130还可用于路由信息的自动计算。具体地,管理引擎130还可用于基于各个接入引擎110的信息及对应的生产者节点和消费者节点各自的注册信息,生成路由信息并发送给转发引擎120。相应地,转发引擎120还可用于基于管理引擎130发送的路由信息生成路由表。
示例性地,路由信息可以例如包括接入层中的各个接入引擎110的标识、各个接入引擎110与生产者节点及消费者节点之间的链路信息、每条链路的发送消息类型及接收消息类型、分发类型(如组内均分、hash分发)以及分组名等等,转发引擎120基于这些路由信息可以生成如表1所示的路由表。
可以理解,通过管理引擎进行路由信息的生成并由转发引擎基于路由信息生成路由表,可以方便业务现场的快速部署和后续维护。
在另一种可选的实施方式中,管理引擎130还可用于对生产者节点和消费者节点进行监测管理。具体地,管理引擎130还可用于监听各个生产者节点的心跳(如按照预先配置的心跳间隔时长监听各个生产者节点的心跳),并对于每一生产者节点,在该生产者节点的心跳满足预设条件(如心跳值低于预设心跳值)和/或接收到该生产者节点的注销请求时,向该生产者节点对应的接入引擎110发送断链指令,以指示该接入引擎断开与该生产者节点的连接。管理引擎130还可用于监听各个消费者节点的心跳(如按照预先配置的心跳间隔时长监听各个消费者节点的心跳),并对于每一消费者节点,在该消费者节点的心跳满足预设条件(如新跳值低于预设心跳值)和/或接收到该消费者节点的注销请求时,向该消费者节点对应的接入引擎110发送断链指令,以指示该接入引擎110断开与该消费者节点的连接。
进一步地,管理引擎130在向接入引擎发送断链指令后,还向转发引擎120发送更新后的路由信息,由转发引擎120更新预置的路由表。
可以理解,通过管理引擎监听生产者节点和消费者节点的心跳,并根据监测结果控制接入引擎与生产者节点和消费者节点之间的连接,可以使接入层中的接入引擎得到充分利用。
在另一种可选的实施方式中,管理引擎130还可用于监测转发引擎120的负荷状态以对转发引擎120进行扩容和缩容管理。具体地,管理引擎130还可用于获取转发引擎120的接入负荷,并在转发引擎120的接入负荷大于或等于预设负荷的情况下,在核心层中创建新的转发引擎,以通过该新的转发引擎进行数据传输。由此,可以实现对转发引擎的扩容,以保证海量数据转发时消息总线系统的性能。
示例地,管理引擎130可通过与转发引擎120的长链接定时获取转发引擎120的接入负荷(如包括所连接的接入引擎110的数量、流量等),在转发引擎120的接入负荷达到预设负荷达的情况下,可从预置的主机列表中选取一台或若干台主机并在选取出的主机中创建新的转发引擎。该新的转发引擎将与管理引擎130建立长链接并等待响应接入层中的接入引擎110的接入请求。
进一步地,管理引擎130还可用于在基于转发引擎120的接入负荷确定在转发引擎120与接入引擎110之间的连接断开后的预设时长内未接收到来自接入引擎110的接入请求的情况下,向转发引擎120发送退出指令,以指示转发引擎120停止工作。由此,可以避免转发引擎闲置而导致的资源浪费。
在另一种可选的实施方式中,管理引擎130还可用于监测接入引擎110的负荷状态以对接入引擎110进行扩容和缩容管理。具体地,管理引擎130还可用于获取各个接入引擎110得到接入负荷,并对于每一接入引擎110,在该接入引擎110的接入负荷大于或等于预设负荷的情况下,创建新的接入引擎,以通过该新的接入引擎进行数据传输。由此,可以实现对接入引擎的扩容,以在生产者节点和/或消费者节点大量接入时消息总线系统的性能。
示例地,对于每一接入引擎110,管理引擎130可通过与该接入引擎110的长链接定时获取该接入引擎110的接入负荷(如包括生产者节点和消费者节点各自的接入数量、流量等),在接入引擎110的接入负荷达到预设负荷的情况下,在接入层创建新的接入引擎。该新的接入引擎将与管理引擎130建立长链接并等待响应生产者节点和/或消费者节点的接入请求。
进一步地,管理引擎130还可用于对于每一接入引擎110,若基于该接入引擎110确定在该接入引擎110与所对应的生产者节点和消费者节点之间的连接断开后的预设时长内未接受到来自生产者节点或消费者节点的接入请求,则向该接入引擎110发送退出指令,以指示该接入引擎停止工作。由此,可以避免接入引擎闲置而导致的资源浪费。
在另一种可选的实施方式中,如图1和图4所示,管理引擎130还可用于对接入引擎110和转发引擎120进行容灾备份。具体地,所述消息总线系统的核心层还可以包括备份引擎140,其中,备份引擎140分别与转发引擎120、各个接入引擎110以及管理引擎130连接。备份引擎140可用于对转发引擎120和各个接入引擎110各自的运行数据进行备份。相应地,管理引擎130还可用于在检测到任一接入引擎110宕机的情况下,控制与该接入引擎所对应的生产者节点和消费者节点切换为与备份引擎140连接,和/或,在检测到转发引擎120宕机的情况下,控制与该转发引擎120所连接的接入引擎切换为与备份引擎140连接,以通过备份引擎140进行数据传输。
需要说明的是,在实际应用时,本申请实施例所述的消息总线系统的核心层可以包括多个备份引擎140,每一备份引擎140用于所指定的接入引擎110和转发引擎140各自的运行数据。
可以理解,在本申请实施例所述的消息总线系统中,通过在核心层增设备份引擎,并在检测到转发引擎或接入引擎宕机时启用所对应的备份引擎中备份的运行数据,以通过备份引擎进行消息传输,增加消息总线系统的可靠性。
还需要说明的是,为了保证消息总线系统的可靠性,本申请所述的消息总线系统可以包括多个管理引擎130,这些管理引擎130互为彼此的主管理引擎和备管理引擎,且主管理引擎和备管理引擎可以基于专用协议和选举算法确定,其中,基于专用协议和选举算法确定主管理引擎和备管理引擎的方法为本领域公知的方法,此处不再赘述。如图6所示,主管理引擎可分别与生产者节点、消费者节点、接入引擎110、转发引擎120、备份引擎140以及备管理引擎连接,其具有对生产者节点、消费者节点以及所述消息总线系统中的各个组件的配置管理、主备管理、组件管理以及转发规则生成等功能。
以上是对本申请实施例提供的消息总线系统的说明,在上述消息总线系统的基础上,本申请实施例还提供了一种消息传输方法,下面进行介绍。
需要说明的是,由于下文中的消息传输方法与上文中的消息总线系统相对应,因此下文对消息传输方法的描述较为简要,相关之处可以参考上文对消息总线系统的说明。
参照图7,图7为本申请实施例提供的一种与消息总线系统的消息传输方法的流程图,该消息总线系统可以是如图1所示的消息总线系统,该消息传输方法可以包括如下步骤:
步骤701、第一接入引擎接收来自生产者节点的消息并转发给所述消息总线系统的转发引擎。
步骤702、转发引擎基于预置的路由表将所述消息转发给订阅所述消息主题的消费者节点所对应的第二接入引擎。
步骤703、所述第二接入引擎将所述消息发送给订阅所述消息主题的消费者节点。
可选地,在第一接入引擎接收来自生产者节点的消息并转发给所述消息总线系统的转发引擎之前,本申请实施例所述的消息传输方法还可以包括:所述消息总线系统的管理引擎接收所述生产者节点的注册信息,并基于所述生产者节点的注册信息和各个接入引擎各自的负荷状态,从所述消息总线系统的所有接入引擎中确定分配给所述生产者节点的接入引擎且将该接入引擎信息返回给所述生产者节点,以供所述生产者节点与该接入引擎建立连接;和/或,所述管理引擎接收所述消费者节点的注册信息,并基于所述消费者节点的注册信息和所述多个接入引擎各自的接入参数,从所述消息总线系统的所有接入引擎中确定分配给所述消费者节点的接入引擎且将给接入引擎信息返回给所述消费者节点,以供所述消费者节点与该接入引擎建立连接。
可选地,在第一接入引擎接收来自生产者节点的消息并转发给所述消息总线系统的转发引擎之前,本申请实施例所述的消息传输方法还可以包括:所述管理引擎基于各个接入引擎信息及对应的生产者节点和消费者节点各自的注册信息,生成路由信息并发送给转发引擎;转发引擎基于所述路由信息生成所述路由表。
进一步地,在本申请的另一个实施例中,本申请实施例所述的消息传输方法还可以包括:管理引擎监听所述生产者节点的心跳,并在所述生产者节点的心跳满足预设条件和/或接收到所述生产者节点的注销请求时,向所述生产者节点对应的接入引擎发送断链指令,以指示该接入引擎断开与所述生产者节点的连接;和/或,所述管理引擎监听所述消费者节点的心跳,并在所述消费者节点的心跳满足所述预设条件和/或接收到所述消费者节点的注销请求时,向所述消费者节点对应的接入引擎发送断链指令,以指示该接入引擎断开与所述消费者节点的连接。
进一步地,在本申请的另一个实施例中,本申请实施例所述的消息传输方法还可以包括:所述管理引擎获取所述转发引擎的接入负荷并在所述接入负荷大于或等于预设负荷的情况下,创建新的转发引擎,以通过所述新的转发引擎进行消息传输。
进一步地,在本申请的另一个实施例中,本申请实施例所述的消息传输方法还可以包括:若所述管理引擎基于所述接入负荷确定在所述转发引擎与所述接入引擎之间的连接断开后的预设时长内未接收到来自接入引擎的接入请求,则所述管理引擎向所述转发引擎发送退出指令,以指示所述转发引擎停止工作。
进一步地,在本申请的另一个实施例中,本申请实施例所述的消息传输方法还可以包括:所述管理引擎获取所述接入引擎的接入负荷并在所述接入负荷大于或等于预设负荷的情况下,创建新的接入引擎,以通过所述新的接入引擎进行消息传输。
进一步地,在本申请的另一个实施例中,本申请实施例所述的消息传输方法还可以包括:若所述管理引擎基于所述接入负荷确定所述接入引擎与所对应的生产者节点和消费者节点之间的连接断开后的预设时长内未接收到来自生产者节点和消费者节点的接入请求,则所述管理引擎向所述接入引擎发送退出指令,以指示所述接入引擎停止工作。
进一步地,在本申请的另一个实施例中,本申请实施例所述的消息传输方法还可以包括:所述管理引擎在检测到任一所述接入引擎宕机的情况下,控制与该接入引擎所对应的生产者节点和消费者节点切换为与所述备份引擎连接,以通过所述备份引擎进行数据传输;和/或,所述管理引擎在检测到所述转发引擎宕机的情况下,控制与该转发引擎所连接的接入引擎切换为与所述备份引擎连接,以通过所述备份引擎进行数据传输。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
参照图8,图8为本申请实施例提供的一种消息传输方法的流程图,该方法可应用于如图1所示的消息总线系统中的转发引擎,该方法可以包括:
步骤S801、接收所述消息总线系统中的第一接入引擎发送的消息,所述消息是所述第一接入引擎转发的来自所述第一接入引擎对应的生产者节点的消息。
步骤S802、基于预置的路由表确定订阅所述消息主题的消费者节点所对应的第二接入引擎。
步骤S803、将所述消息转发给所述第二接入引擎,以使所述第二接入引擎将所述消息发送给订阅所述消息主题的消费者节点。
参照图9,图9为本申请实施例提供的一种消息传输方法的流程图,该方法可应用于如图1所示的消息总线系统中的管理引擎,该方法可以包括:
步骤S901、基于来自所述生产者节点的注册信息和所述消息总线系统中的接入引擎的负荷状态,从所述消息总线的接入引擎中确定分配给所述生产者节点的接入引擎。
步骤S902、基于来自所述消费者节点的注册信息和所述消息总线系统中的接入引擎的负荷状态,从所述消息总线的接入引擎中确定分配给所述消费者节点的接入引擎。
步骤S903、向所述生产者节点发送所分配的接入引擎信息,以供所述生产者与该接入引擎建立连接,以通过该连接向该接入引擎推送消息。
步骤S904、向所述消费者节点发送所分配的接入引擎信息,以供所述消费者与该接入引擎建立连接,以通过该连接从该接入引擎接收订阅消息,其中,所述订阅消息是所述消息总线系统中的转发引擎接收到的来自其他接入引擎且基于预置的路由表转发的给所述消费者节点所连接的接入引擎的。
可选地,所述方法还可以包括:基于所述消息总线系统的接入引擎信息及对应的生产者节点和消费者节点各自的注册信息,生成路由信息并发送给所述消息总线系统的转发引擎,以供所述转发引擎生成所述路由表。
可选地,所述方法还可以包括:监听所述生产者节点的心跳,并在所述生产者节点的心跳满足预设条件和/或接收到所述生产者节点的注销请求的情况下,向所述生产者节点对应的接入引擎发送断链指令,以指示该接入引擎断开与所述生产者节点的连接;和/或,监听所述消费者节点的心跳,并在所述消费者节点的心跳满足所述预设条件和/或接收到所述消费者节点的注销请求的情况下,向所述消费者节点对应的接入引擎发送断链指令,以指示该接入引擎断开与所述消费者节点的连接。
可选地,所述方法还可以包括:获取所述转发引擎的接入负荷,并在所述接入负荷大于或等于预设负荷的情况下,创建新的转发引擎,以通过所述新的转发引擎进行消息传输。
可选地,所述方法还可以包括:若基于所述接入负荷确定在所述转发引擎与所述接入引擎之间的连接断开后的预设时长内未接收到来自接入引擎的接入请求,则向所述转发引擎发送退出指令,以指示所述转发引擎停止工作。
可选地,所述方法还可以包括:获取所述接入引擎的接入负荷并在所述接入负荷大于或等于预设负荷的情况下,创建新的接入引擎,以通过所述新的接入引擎进行消息传输。
可选地,所述方法还可以包括:若基于所述接入负荷确定所述接入引擎与所对应的生产者节点和消费者节点之间的连接断开后的预设时长内未接收到来自生产者节点和消费者节点的接入请求,则向所述接入引擎发送退出指令,以指示所述接入引擎停止工作。
可选地,所述方法还可以包括:在检测到所述消息总线系统的接入引擎宕机的情况下,控制与所述接入引擎所对应的生产者节点和消费者节点切换为与所述消息总线系统的备份引擎连接,以通过所述备份引擎进行数据传输;和/或,在检测到所述消息总线系统的转发引擎宕机的情况下,控制与所述转发引擎所连接的接入引擎切换为与所述备份引擎连接,以通过所述备份引擎进行数据传输;其中,所述备份引擎备份有所述消息总线系统的接入引擎和转发引擎各自的运行数据。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
参照图10,图是本申请实施例提供的一种消息传输装置的框图,所述装置可应用于如图1所示的消息总线系统中的转发引擎,所述装置1000包括:
第一接收模块1001,用于接收所述消息总线系统中的第一接入引擎发送的消息,所述消息是所述第一接入引擎转发的来自所述第一接入引擎对应的生产者节点的消息;
第一确定模块1002,用于基于预置的路由表确定订阅所述消息主题的消费者节点所对应的第二接入引擎;
第一发送模块1003,用于将所述消息转发给所述第二接入引擎,以使所述第二接入引擎将所述消息发送给订阅所述消息主题的消费者节点。
参照图11,图是本申请实施例提供的一种消息传输装置的框图,所述装置可应用于如图1所示的消息总线系统中的管理引擎,所述装置1100包括:
第二确定模块1101,用于基于来自所述生产者节点的注册信息和所述消息总线系统中的接入引擎的负荷状态,从所述消息总线的接入引擎中确定分配给所述生产者节点的接入引擎;
第三确定模块1102,用于基于来自所述消费者节点的注册信息和所述消息总线系统中的接入引擎的负荷状态,从所述消息总线的接入引擎中确定分配给所述消费者节点的接入引擎;
第二发送模块1103,用于向所述生产者节点发送所分配的接入引擎信息,以供所述生产者与该接入引擎建立连接,以通过该连接向该接入引擎推送消息;
第三发送模块1104,用于向所述消费者节点发送所分配的接入引擎信息,以供所述消费者与该接入引擎建立连接,以通过该连接从该接入引擎接收订阅消息,其中,所述订阅消息是所述消息总线系统中的转发引擎接收到的来自其他接入引擎且基于预置的路由表转发的给所述消费者节点所连接的接入引擎的。
图12是本申请实施例提供的一种电子设备的结构示意图。请参考图12,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-AccessMemory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponentInterconnect,外设部件互连标准)总线或EISA(Extended IndustryStandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图12中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成消息传输装置。
上述如本申请图10或图11所示实施例揭示的基于消息总线系统的消息装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(CentralProcessing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备还可执行图8或图9的方法,并实现基于消息总线系统的消息装置在图10或图11所示实施例的功能,本申请实施例在此不再赘述。
当然,除了软件实现方式之外,本申请的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑模块,也可以是硬件或逻辑器件。
本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图8或图9所示实施例的方法。
总之,以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
上述实施例阐明的系统、装置、模块或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
Claims (9)
1.一种消息总线系统,其特征在于,包括核心层和接入层,所述核心层包括转发引擎,所述接入层包括多个接入引擎,且所述转发引擎分别与所述多个接入引擎连接;
所述接入引擎,用于接收来自生产者节点的第一消息并转发给所述转发引擎,以使所述转发引擎将所述第一消息转发给订阅所述第一消息主题的消费者节点;以及,接收来自所述转发引擎的第二消息并将所述第二消息发送给订阅所述第二消息主题的消费者节点;
所述转发引擎,用于接收来自所述多个接入引擎中的第一接入引擎的消息,并基于预置的路由表将所述消息转发给订阅所述消息主题的消费者节点所对应的第二接入引擎,以使所述第二接入引擎将所述消息发送给订阅所述消息主题的消费者节点;
所述核心层还包括管理引擎,所述管理引擎分别与所述生产者节点和所述消费者节点连接;
所述管理引擎,用于接收所述生产者节点的注册信息,并基于所述生产者节点的注册信息和所述多个接入引擎各自的负荷状态,从所述多个接入引擎中确定分配给所述生产者节点的接入引擎且将该接入引擎信息返回给所述生产者节点,以供所述生产者节点与该接入引擎建立连接;和/或,接收所述消费者节点的注册信息,并基于所述消费者节点的注册信息和所述多个接入引擎各自的负荷状态,从所述多个接入引擎中确定分配给所述消费者节点的接入引擎且将该接入引擎信息返回给所述生产者节点,以供所述消费者节点与该接入引擎建立连接。
2.根据权利要求1所述的系统,其特征在于,所述管理引擎还与所述转发引擎连接以及所述多个接入引擎连接;
所述管理引擎,还用于获取所述转发引擎的接入负荷,并在所述接入负荷大于或等于预设负荷的情况下,在所述核心层中创建新的转发引擎;和/或,获取所述多个接入引擎各自的接入负荷,对于每一所述接入引擎,在该接入引擎的接入负荷大于或等于预设负荷的情况下,创建新的接入引擎。
3.根据权利要求1所述的系统,其特征在于,所述核心层还包括:
备份引擎,分别与所述多个接入引擎和所述转发引擎连接,用于对所述多个接入引擎和所述转发引擎各自的运行数据进行备份;
所述管理引擎,还与所述备份引擎连接,还用于在检测到任一接入引擎宕机的情况下,控制与该接入引擎所对应的生产者节点和消费者节点切换为与所述备份引擎连接,和/或,在检测到所述转发引擎宕机的情况下,控制与该转发引擎所连接的接入引擎切换为与所述备份引擎连接,以通过所述备份引擎进行数据传输。
4.一种消息传输方法,其特征在于,所述方法应用于如权利要求1所述的消息总线系统,所述消息总线系统包括核心层和接入层,所述核心层转发引擎,所述接入层包括多个接入引擎,且所述转发引擎分别与所述多个接入引擎连接,所述方法包括:
所述多个接入引擎中的第一接入引擎接收来自生产者节点的消息并转发给所述消息总线系统的转发引擎;
所述转发引擎基于预置的路由表将所述消息转发给订阅所述消息主题的消费者节点所对应的第二接入引擎;
所述第二接入引擎将所述消息发送给订阅所述消息主题的消费者节点。
5.一种消息传输方法,其特征在于,所述方法应用于如权利要求1所述消息总线系统中的转发引擎,所述转发引擎分别与所述消息总线系统中的多个接入引擎连接,所述方法包括:
接收所述消息总线系统中的第一接入引擎发送的消息,所述消息是所述第一接入引擎转发的来自所述第一接入引擎对应的生产者节点的消息;
基于预置的路由表确定订阅所述消息主题的消费者节点所对应的第二接入引擎;
将所述消息转发给所述第二接入引擎,以使所述第二接入引擎将所述消息发送给订阅所述消息主题的消费者节点。
6.一种消息传输方法,其特征在于,所述方法应用于如权利要求1所述消息总线系统中的管理引擎,所述管理引擎分别与生产者节点和消费者节点连接,所述方法包括:
基于来自所述生产者节点的注册信息和所述消息总线系统中的接入引擎的负荷状态,从所述消息总线的接入引擎中确定分配给所述生产者节点的接入引擎;
基于来自所述消费者节点的注册信息和所述消息总线系统中的接入引擎的负荷状态,从所述消息总线的接入引擎中确定分配给所述消费者节点的接入引擎;
向所述生产者节点发送所分配的接入引擎信息,以供所述生产者与该接入引擎建立连接,以通过该连接向该接入引擎推送消息;
向所述消费者节点发送所分配的接入引擎信息,以供所述消费者与该接入引擎建立连接,以通过该连接从该接入引擎接收订阅消息,其中,所述订阅消息是所述消息总线系统中的转发引擎接收到的来自其他接入引擎且基于预置的路由表转发的给所述消费者节点所连接的接入引擎的。
7.一种消息传输装置,其特征在于,所述装置应用于如权利要求1所述消息总线系统中的转发引擎,所述转发引擎分别与所述消息总线系统中的多个接入引擎连接,所述装置包括:
第一接收模块,用于接收所述消息总线系统中的第一接入引擎发送的消息,所述消息是所述第一接入引擎转发的来自所述第一接入引擎对应的生产者节点的消息;
第一确定模块,用于基于预置的路由表确定订阅所述消息主题的消费者节点所对应的第二接入引擎;
第一发送模块,用于将所述消息转发给所述第二接入引擎,以使所述第二接入引擎将所述消息发送给订阅所述消息主题的消费者节点。
8.一种消息传输装置,其特征在于,所述装置应用于如权利要求1所述消息总线系统中的管理引擎,所述管理引擎分别与生产者节点和消费者节点连接,所述装置包括:
第二确定模块,用于基于来自所述生产者节点的注册信息和所述消息总线系统中的接入引擎的负荷状态,从所述消息总线的接入引擎中确定分配给所述生产者节点的接入引擎;
第三确定模块,用于基于来自所述消费者节点的注册信息和所述消息总线系统中的接入引擎的负荷状态,从所述消息总线的接入引擎中确定分配给所述消费者节点的接入引擎;
第二发送模块,用于向所述生产者节点发送所分配的接入引擎信息,以供所述生产者与该接入引擎建立连接,以通过该连接向该接入引擎推送消息;
第三发送模块,用于向所述消费者节点发送所分配的接入引擎信息,以供所述消费者与该接入引擎建立连接,以通过该连接从该接入引擎接收订阅消息,其中,所述订阅消息是所述消息总线系统中的转发引擎接收到的来自其他接入引擎且基于预置的路由表转发的给所述消费者节点所连接的接入引擎的。
9.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求5或6所述的消息传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911335945.8A CN113098914B (zh) | 2019-12-23 | 2019-12-23 | 消息总线系统及消息传输方法、装置、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911335945.8A CN113098914B (zh) | 2019-12-23 | 2019-12-23 | 消息总线系统及消息传输方法、装置、电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113098914A CN113098914A (zh) | 2021-07-09 |
CN113098914B true CN113098914B (zh) | 2022-09-30 |
Family
ID=76662952
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911335945.8A Active CN113098914B (zh) | 2019-12-23 | 2019-12-23 | 消息总线系统及消息传输方法、装置、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113098914B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105519041A (zh) * | 2013-09-28 | 2016-04-20 | 迈克菲股份有限公司 | 安全连接的框架 |
CN106464665A (zh) * | 2014-02-28 | 2017-02-22 | 泰科消防及安全有限公司 | 与消息路由结合的规则引擎 |
CN108920358A (zh) * | 2018-06-05 | 2018-11-30 | 东软集团股份有限公司 | 消息总线的路由表生成方法、装置、存储介质及电子设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050021836A1 (en) * | 2003-05-01 | 2005-01-27 | Reed Carl J. | System and method for message processing and routing |
US9569753B2 (en) * | 2009-10-30 | 2017-02-14 | Verisign, Inc. | Hierarchical publish/subscribe system performed by multiple central relays |
WO2016134267A1 (en) * | 2015-02-20 | 2016-08-25 | Convida Wireless, Llc | Message bus service directory |
-
2019
- 2019-12-23 CN CN201911335945.8A patent/CN113098914B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105519041A (zh) * | 2013-09-28 | 2016-04-20 | 迈克菲股份有限公司 | 安全连接的框架 |
CN105684376A (zh) * | 2013-09-28 | 2016-06-15 | 迈克菲公司 | 数据交换层上的位置服务 |
CN106464665A (zh) * | 2014-02-28 | 2017-02-22 | 泰科消防及安全有限公司 | 与消息路由结合的规则引擎 |
CN108920358A (zh) * | 2018-06-05 | 2018-11-30 | 东软集团股份有限公司 | 消息总线的路由表生成方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113098914A (zh) | 2021-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111131379B (zh) | 一种分布式流量采集系统和边缘计算方法 | |
CN110633442A (zh) | 一种推送方法、装置及电子设备 | |
US20200050479A1 (en) | Blockchain network and task scheduling method therefor | |
CN112087390B (zh) | 一种网络路由方法及装置 | |
JP2023523473A (ja) | ユーザプレーン機能の決定方法、情報提供方法、機器及び媒体 | |
CN106713378B (zh) | 实现多个应用服务器提供服务的方法和系统 | |
CN108427619B (zh) | 日志管理方法、装置、计算设备及存储介质 | |
CN112087382B (zh) | 一种服务路由方法及装置 | |
US20230275807A1 (en) | Data processing method and device | |
CN113301079B (zh) | 一种数据的获取方法、系统、计算设备及存储介质 | |
CN113835905B (zh) | 一种消息队列负载均衡方法、装置、电子设备及介质 | |
US20150372895A1 (en) | Proactive Change of Communication Models | |
CN106790354B (zh) | 一种防数据拥堵的通信方法及其装置 | |
CN113098914B (zh) | 消息总线系统及消息传输方法、装置、电子设备 | |
CN110620811B (zh) | 一种vOLT集群架构下ONU管理方法及系统 | |
CN109787870B (zh) | 接入管理方法、装置、系统、初始及目标接入设备 | |
RU2522995C2 (ru) | Способ и устройство создания одноранговой группы в одноранговом приложении и способ применения одноранговой группы | |
CN114296869A (zh) | 一种基于tcp长连接的服务器节点服役方法及装置 | |
CN115499417A (zh) | 一种数据分发方法、服务端和电子设备 | |
CN111639944A (zh) | 交易广播方法、设备和存储介质 | |
CN116055565B (zh) | 一种数据传输方法、系统、装置、电子设备及存储介质 | |
CN115086099B (zh) | 数据处理方法、装置、存储介质及系统 | |
CN118175202B (zh) | 代理连接方法、装置及相关设备 | |
CN112954074B (zh) | 一种区块链网络连接方法及装置 | |
CN113515055B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |