一种异步消息处理方法、装置及系统与流程
- 国知局
- 2024-10-15 09:36:25
本说明书涉及计算机,尤其是涉及一种异步消息处理方法、装置及系统。
背景技术:
1、对于分布式系统而言,在对业务数据进行异步协同处理时,主要使用关系型数据库进行数据的存储和流转,分布式系统在接收到业务数据后直接将业务数据存入数据库,数据库中每条业务数据记录设置特定字段以标识当前处理节点,分布式系统各应用节点通过主动扫描该特定字段获取需要处理的业务数据,并对该特定字段进行更新,以进入下一处理节点,通过对标识出的特定字段的不断扫描和更新,实现业务数据在不同应用节点间的流转,最终完成业务数据的异步协同处理。
2、然而,现有的利用关系型数据库进行数据流转的方式,存在数据流转效率低、耗时长以及严重依赖数据库性能的问题,当业务数据量增加时,扫描效率会大打折扣,甚至会影响到其他应用对数据库的访问,并且该方式仅对系统单体应用节点友好,对于需支持横向扩展的系统应用节点,该方式还会导致部署难度增大。因此,亟需一种异步消息处理方法,能够在保证数据可靠性的同时,提高数据在不同应用节点间的流转效率,降低对数据库性能的依赖,并且降低应用横向扩展难度。
技术实现思路
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、将所述处理结果更新至所述数据库。
30、进一步地,所述业务处理集群中的其他子节点基于预设拓扑排序序列,重复如上监听并通过筛选对应的业务数据,以更新所述数据库的步骤,从而完成异步消息处理,进一步包括:
31、所述其他子节点基于预设拓扑排序序列,确定节点执行顺序;
32、根据所述其他子节点中各子节点匹配的消息主题及所述节点执行顺序,基于负载均衡机制,确定流量分配策略;
33、根据所述流量分配策略,所述其他子节点按照所述节点执行顺序,依次重复如上监听并通过筛选对应的业务数据,以更新所述数据库的步骤,从而完成异步消息处理。
34、另一方面,本说明书的一些实施例还提供一种异步消息处理装置,所述装置包括:
35、接收模块,用于接收业务数据;
36、传输模块,用于利用业务处理集群中的第一子节点,将所述业务数据写入数据库中,并发送至分布式消息队列;
37、筛选模块,用于利用业务处理集群中的第二子节点实时监听所述分布式消息队列,筛选得到与所述第二子节点匹配的消息主题所对应的业务数据;
38、锁定模块,用于利用分布式缓存集群对筛选结果进行缓存及数据锁定;
39、更新模块,用于所述第二子节点对锁定后的筛选结果进行多层数据处理,得到处理结果,并将所述处理结果更新至所述数据库;
40、重复模块,用于所述业务处理集群中的其他子节点基于预设拓扑排序序列,重复如上通过监听并筛选对应的业务数据,以更新所述数据库的步骤,从而完成异步消息处理。
41、另一方面,本说明书的一些实施例还提供一种异步消息处理系统,所述异步消息处理系统包括业务处理集群、分布式缓存集群、分布式消息队列以及数据库,所述异步消息处理系统用于执行上述任一实施例所述的方法。
42、另一方面,本说明书的一些实施例还提供了一种计算机设备,包括存储器、处理器、以及存储在所述存储器上的计算机程序,所述计算机程序被所述处理器运行时,执行上述方法的指令。
43、另一方面,本说明书的一些实施例还提供了一种计算机存储介质,其上存储有计算机程序,所述计算机程序被计算机设备的处理器运行时,执行上述方法的指令。
44、另一方面,本说明书的一些实施例还提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被计算机设备的处理器运行时,执行上述方法的指令。
45、本说明书的一些实施例提供的一个或者多个技术方案,至少具有如下的技术效果:
46、本说明书的实施例首先自动接收业务数据,之后利用业务处理集群中的第一子节点将业务数据写入数据库并发送至分布式消息队列,以使第一子节点之后的第二子节点实时监听分布式消息队列,从分布式消息队列中根据消息主题的匹配,订阅第二子节点所需要处理的业务数据,并将订阅数据缓存至分布式缓存集群,为了保证业务数据不被重复消费,利用分布式缓存集群对筛选结果进行数据锁定,之后继续由第二子节点对锁定后的筛选结果进行多层数据处理,并将处理结果更新至数据库,之后跳转至业务处理集群中的其他子节点,以使其他子节点基于预设拓扑排序序列,依次重复如上通过监听并筛选对应的业务数据,以更新所述数据库的步骤,从而实现对业务数据的处理过程的解耦,保证数据可靠性的前提下提高了数据流转效率,避免始终需要与数据库进行交互处理业务数据所存在的数据库性能依赖的问题,并且业务处理集群的其他子节点在处理业务数据时,与第二子节点的处理业务数据的步骤相同,便于后续应用横向扩展。
47、上述说明仅是本说明书的一些实施例技术方案的概述,为了能够更清楚了解本说明书的一些实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本说明书的一些实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本说明书的一些实施例的具体实施方式。
本文地址:https://www.jishuxx.com/zhuanli/20241015/314690.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表