业务系统中的消息传输方法、装置、电子设备及存储介质与流程

文档序号:36390483发布日期:2023-12-15 08:27阅读:26来源:国知局
业务系统中的消息传输方法与流程

本技术涉及互联网,尤其涉及一种业务系统中的消息传输方法、装置、电子设备以及计算机可读存储介质。


背景技术:

1、消息队列是分布式系统的重要组件,为流程或应用程序之间的沟通搭建了桥梁,由于其在业务解耦、流量削峰和异步等方面的优势,消息队列在一些场景下的应用越来越广泛。然而,由于业务系统中业务节点上的服务数量一般较多,因此针对各服务建立的消息队列数量巨大,这样不仅会耗费大量内存资源,影响业务系统中的消息传输的效率;同时,当内存资源不足时,还会影响消息的稳定传输。


技术实现思路

1、本技术实施例提供一种业务系统中的消息传输方法、装置、电子设备、计算机可读存储介质以及计算机程序产品,能够提高业务系统中的消息传输过程的稳定性和高效性。

2、本技术实施例的技术方案是这样实现的:

3、本技术实施例提供一种业务系统中的消息传输方法,应用于消息中间件,所述业务系统包括至少两个业务节点,各所述业务节点上运行至少一个服务实例,包括:

4、从第一服务实例的输出队列中获取待传输的消息;

5、其中,所述输出队列,用于存储所述第一服务实例发送至运行于其它业务节点的至少两个第二服务实例的消息;

6、确定所述消息对应的目标第二服务实例,并确定所述目标第二服务实例对应的目标消息传输队列,所述目标消息传输队列设置于所述消息中间件中;

7、将所述消息存储至所述目标消息传输队列,并当所述消息的发送时间点到达时,将所述消息发送至所述目标第二服务实例。

8、本技术实施例提供一种业务系统中的消息传输装置,应用于消息中间件,所述业务系统包括至少两个业务节点,各所述业务节点上运行至少一个服务实例,包括:。

9、获取模块,用于从第一服务实例的输出队列中获取待传输的消息;其中,所述输出队列,用于存储所述第一服务实例发送至运行于其它业务节点的至少两个第二服务实例的消息;

10、确定模块,用于确定所述消息对应的目标第二服务实例,并确定所述目标第二服务实例对应的目标消息传输队列,所述目标消息传输队列设置于所述消息中间件中;

11、发送模块,用于将所述消息存储至所述目标消息传输队列,并当所述消息的发送时间点到达时,将所述消息发送至所述目标第二服务实例。

12、在上述方案中,所述确定模块,还用于对所述消息进行解析,得到所述消息携带的服务实例标识;基于所述服务实例标识,从所述至少两个第二服务实例中查找与所述服务实例标识对应的第二服务实例;将查找到的第二服务实例作为所述目标第二服务实例。

13、在上述方案中,所述装置还包括第一队列建立模块,所述队列建立模块,用于确定运行于其它业务节点的至少两个第二服务实例;基于确定的所述两个第二服务实例,在所述消息中间件中建立至少两个消息传输队列,所述消息传输队列与所述第二服务实例存在一一对应关系;所述确定模块,还用于基于所述目标第二服务实例,从所述至少两个消息传输队列中,进行消息传输队列查找,得到与所述目标第二服务实例对应的目标消息传输队列。

14、在上述方案中,所述确定模块,还用于确定所述目标第二服务实例归属的目标服务实例群组;获取与所述目标服务实例群组对应的消息传输队列,作为所述目标第二服务实例对应的目标消息传输队列。

15、在上述方案中,所述装置还包括第二队列建立模块,所述第二队列建立模块,还用于确定包括至少两个所述第二服务实例的至少两个服务实例群组;在所述消息中间件中建立至少两个消息传输队列,所述消息传输队列与所述服务实例群组存在一一对应关系;所述确定模块,还用于基于所述目标服务实例群组,从所述至少两个消息传输队列中,进行消息传输队列查找,得到与所述目标服务实例群组对应的目标消息传输队列。

16、在上述方案中,所述装置还包括解析模块,所述解析模块,用于对所述消息进行解析,得到所述消息携带的实例群组标识,所述实例群组标识用于指示包括至少两个所述第二服务实例的服务实例群组;查找与所述实例群组标识对应的服务实例群组,作为目标服务实例群组;所述确定模块,还用于从所述目标服务实例群组包括的至少两个第二服务实例中,确定所述消息对应的目标第二服务实例。

17、在上述方案中,所述确定模块,还用于当目标消息传输队列中所述消息的发送时间点到达时,获取路由策略;根据所述路由策略,从所述目标服务实例群组包括的至少两个第二服务实例中,确定所述消息对应的目标第二服务实例。

18、在上述方案中,所述装置还包括第一分类模块,所述第一分类模块,用于获取各所述第二服务实例的服务类型;基于所述服务类型,对至少两个所述第二服务实例进行分类,得到至少两个服务实例群组;建立对应各所述服务实例群组的消息传输队列;所述确定模块,还用于确定所述目标服务实例群组对应的消息传输队列作为所述目标消息传输队列。

19、在上述方案中,所述装置还包括第二分类模块,所述第二分类模块,用于确定各所述第二服务实例所处的业务节点;基于所述业务节点,对至少两个所述第二服务实例进行分类,得到至少两个服务实例群组;建立对应各所述服务实例群组的消息传输队列;所述确定模块,还用于确定所述目标服务实例群组对应的消息传输队列作为所述目标消息传输队列。

20、在上述方案中,所述装置还包括内存分配模块,所述内存分配模块,用于获取所述消息的消息大小、以及所述目标消息传输队列的剩余队列空间;基于所述消息大小,在所述剩余队列空间中对所述消息所占用的空间进行分配,并对所述目标消息传输队列的剩余队列空间进行更新。

21、在上述方案中,所述装置还包括内存释放模块,所述内存释放模块,用于获取所述消息的消息大小;基于所述消息大小,在所述目标消息传输队列中对所述消息所占用的空间进行释放,并对更新后的所述剩余队列空间进行再次更新。

22、在上述方案中,所述发送模块,还用于基于所述目标消息传输队列,确定所述目标消息传输队列中存储的至少一条消息的发送顺序;基于所述发送顺序,确定所述消息的发送时间点;当所述消息的发送时间点到达时,将所述消息发送至所述目标第二服务实例,以使所述目标第二服务实例将所述消息存储至自身的输入队列。

23、本技术实施例提供一种电子设备,包括:

24、存储器,用于存储可执行指令;

25、处理器,用于执行所述存储器中存储的可执行指令时,实现本技术实施例提供的业务系统中的消息传输方法。

26、本技术实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本技术实施例提供的业务系统中的消息传输方法。

27、本技术实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该电子设备执行本技术实施例提供的业务系统中的消息传输方法。

28、本技术实施例具有以下有益效果:

29、第一服务实例不区分用于接收待传输消息的第二服务实例的差异,将待传输消息统一存储至自身的输出队列,然后通过消息中间件来区分接收不同待传输消息的第二服务实例,以将待传输消息存储至对应第二服务实例的传输队列,从而实现第一服务实例和各第二服务实例之间的消息传输。如此,通过消息中间件,将消息传输过程中存在访问关系的服务实例之间解耦,无需在各服务内部基于消息的最终传输目标建立特定的消息队列,而是基于消息的最终传输目标,在消息中间件的内部建立特定的传输队列,不仅减少了业务系统中内存资源的消耗,提高了消息传输的效率,同时,通过降低消息传输过程中服务之间的耦合度,还实现了消息的稳定传输。

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