一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

事件管理系统及方法与流程

2023-01-06 02:40:33 来源:中国专利 TAG:


1.本发明涉及通信技术领域,尤其涉及一种事件管理系统及方法。


背景技术:

2.业务处理的方式也随着技术的发展,并结合业务的自身特性,出现了多种多样的处理框架,基于事件的框架也随着这种契机,也得到了很大的发展,传统基于kafka、rocketmq等消息中间件的方式作为事件的订阅和发布框架是一种比较流行的方式,其具体实现方式是事件订阅者和事件发布者提前约定一个特定的订阅主题,基于这个约定的订阅主题,事件发布者发布该订阅主题的事件到消息中间件,事件订阅者监听消息中间件该订阅主题的事件,当事件订阅者接受到消息中间件约定订阅主题的事件,即可对事件进行业务处理,复杂的业务通过这种基于消息中间件的事件订阅和发布方式,实现了系统与系统之间的解耦,使得业务可以快速的进行迭代和升级。然而基于消息中间的事件发布和订阅方式,随着业务的发展,其处理方式所带来的弊端也越来越明显。
3.首先,随着业务的迭代,事件发布者需要发布的事件也越来越复杂,需要对业务进行拆分细化,随之而来的是事件发布者发布事件订阅主题也需要拆分细化,基于消息中间件的事件订阅和发布系统,对于这种拆分细化的事件,事件订阅者有两种处理方式:一是重新和事件发布者约定的订阅主题,然后重新对这些订阅主题进行监听;二是保持原有的订阅主题不变,对事件订阅者进行拆分,由拆分后的事件订阅者都对原来的事件订阅主题进行监听,然后对接受到事件进行过滤和处理。这两种方式都有其缺点,前者需要重新通过消息中间件创建订阅主题,消息中间件的订阅主题是一个比较重且复杂的数据结构,其对于订阅主题的动态创建和删除的支持并不十分理想,需要人的参与来对这种订阅主题所耗费的资源进行评估,然后才能创建订阅主题;而对于后者,需要对事件订阅者进行重新的改造,每个拆分后的事件订阅者,都需要原来的事件进行过滤,这就导致了事件订阅者接收到了许多无用的事件,导致网络资源和系统资源的浪费。
4.其次,动态订阅主题事件的业务场景也越来越多,基于消息中间件约定订阅主题的事件订阅和发布方式,严重制约了事件订阅和发布的灵活性。
5.基于上述传统的通过消息中间件的事件订阅和发布方式所表现出来的缺点,需要一种新的事件订阅与发布方式,来支持事件的灵活订阅和发布。


技术实现要素:

6.本技术的目的在于提供一种技术方案,解决现有技术中通过消息中间件的事件订阅和发布方式存在的订阅操作繁琐,网络资源和系统资源浪费的问题。
7.基于以上问题,本技术提供一种事件管理系统,包括:多个事件订阅模块,所述事件订阅模块用于接收事件订阅者的订阅主题,生成所述订阅主题所对应的订阅信息块,其中,所述订阅信息块至少包括订阅主题、订阅分组和事件订阅者身份信息;
订阅管理模块,用于接收每一个事件订阅模块所发送的每一个订阅信息块,构建具有同一订阅主题的各个订阅信息块与该订阅主题的映射关系,以得到多组订阅主题与对应的具有同一订阅主题的各个订阅信息块的订阅主题-信息块映射表;多个事件发布模块,用于根据所述订阅主题-信息块映射表,构建得到多组订阅主题与具有同一订阅主题的多个订阅分组的订阅主题-分组映射表,以及得到多组订阅分组与具有同一订阅分组的多个订阅信息块的订阅分组-信息块映射表;所述事件发布模块,还用于接收事件发布者所发布的事件信息,所述事件信息包括订阅主题和业务数据,根据所述事件信息中的订阅主题,在所述订阅主题-分组映射表以及订阅分组-信息块映射表中,查询得到每个订阅分组所对应的多个订阅信息块,在每个订阅分组所对应的多个订阅信息块中任选其中的一个订阅信息块,根据所选择的订阅信息块中的事件订阅者身份信息,将所述事件信息发送至所述事件订阅者身份信息所对应的事件订阅者,以使所述事件订阅者处理所述业务数据。
8.进一步的,所述事件订阅模块包括:多个事件处理器,所述事件处理器用于根据接收的事件订阅者的订阅主题,生成所述订阅主题所对应的订阅信息块;事件处理器注册器,用于注册所述事件处理器,获取所述订阅信息块中的订阅主题,构建所述订阅主题与至少一个事件处理器的映射关系;事件处理器路由缓存,用于缓存所述订阅主题与至少一个事件处理器的映射关系;事件订阅处理器,用于将所述订阅信息块发送至所述订阅管理模块。
9.进一步的,所述订阅管理模块包括:订阅管理处理器,用于接收所述事件订阅模块所发送的订阅信息块,获取所述订阅信息块中的订阅主题,在所述订阅主题-信息块映射表中查询是否有所述订阅主题与订阅信息块的映射关系,若没有,则在所述订阅主题-信息块映射表中增加一条所述订阅主题与所述订阅信息块的映射记录,并记录该映射记录的映射变化类型为新增,以得到具有同一订阅主题的各个订阅信息块与该订阅主题的映射关系,并记录该映射记录的映射变化类型为新增;订阅分发处理器,用于将新增的订阅主题与订阅信息块的映射关系以及对应的映射关系变化类型转发至所述事件发布模块。
10.进一步的,所述事件发布模块包括:订阅监听处理器,用于接收新增的订阅主题与订阅信息块的映射关系及对应的映射关系变化类型;路由缓存,用于存储所述订阅主题-分组映射表和所述订阅分组-信息块映射表;事件路由管理器,用于若所述映射关系变化类型为新增,根据所述订阅主题,在所述订阅主题-分组映射表中增加一条订阅主题与订阅分组的映射记录,并根据所述订阅信息块中的订阅分组,在所述订阅分组-信息块映射表中增加一条订阅分组与订阅信息块的映射记录,以得到更新后的订阅主题-分组映射表和订阅分组-信息块映射表;所述路由缓存,还用于存储所述更新后的订阅主题-分组映射表和订阅分组-信息块映射表。
11.进一步的,所述订阅管理处理器,定期向所述事件订阅模块发送心跳请求信息,若在预设的时间阈值内,所述订阅管理处理器没有接收到心跳响应信息,则在所述订阅主题-信息块映射表中删除无响应的订阅信息块的映射记录,记录该映射记录的映射变化类型为删除;所述订阅分发处理器,将订阅主题与无响应的订阅信息块映射记录以及对应的映射变化类型发送至所述事件发布模块。
12.进一步的,所述订阅监听处理器,接收所述订阅主题与无响应的订阅信息块的映射记录以及对应的映射变化类型;事件路由管理器,若所述映射关系变化类型为删除,根据所述订阅主题和无响应的订阅信息块,在所述订阅主题-分组映射表中和订阅分组-信息块映射表中删除对应的映射记录,以得到更新后的订阅分组-信息块映射表;事件路由管理器在删除订阅分组-信息块映射表中对应的映射记录后,还会检测该订阅分组-信息块映射表是否为空,若删除映射记录后该订阅分组-信息块映射表为空,则事件路由管理器在订阅主题-分组映射表中删除对应的订阅主题与订阅分组的映射记录,以得到更新后的订阅主题-分组映射表;所述路由缓存,还用于存储所述更新后的订阅主题-分组映射表和订阅分组-信息块映射表。
13.进一步的,所述事件发布模块还包括:事件发布处理器,用于接收事件发布者所发布的事件信息,根据所述事件信息中的订阅主题,在所述订阅主题-分组映射表中查询到所述订阅主题所对应的多个订阅分组,并根据订阅分组-信息块映射表,查询到每个订阅分组所对应的多个订阅信息块,在每个订阅分组所对应的多个订阅信息块中任选其中的一个订阅信息块,根据所选择的订阅信息块中的事件订阅者身份信息,将所述事件信息发送至对应的事件订阅模块。
14.进一步的,所所述事件订阅模块包括:事件接受处理器,与所述事件发布处理器连接,接收所述事件信息,根据所述事件信息中的订阅主题在所述事件处理器路由缓存中查询对应的各个事件处理器,并将所述事件信息发送至每一个事情处理器;所述事件处理器,获取所述事件信息中的订阅主题,根据所述订阅主题所对应的订阅信息块,获取所述订阅信息块中的事件订阅者身份信息,根据所述事件订阅者身份信息中的ip地址和端口号,将所述事件信息发送对应的事件订阅者,以使所述事件订阅者处理所述事件信息中的业务数据,其中,所述事件订阅者身份信息至少包括ip地址和端口号。
15.进一步的,具有同一个订阅主题的多个事件订阅者构成一个订阅分组。
16.本技术还提供一种事件管理方法,所述方法包括:接收事件订阅者的订阅主题,生成所述订阅主题所对应的订阅信息块,其中,所述订阅信息块至少包括订阅主题、订阅分组和事件订阅者身份信息;接收每一个事件订阅模块所发送的每一个订阅信息块,构建具有同一订阅主题的各个订阅信息块与该订阅主题的映射关系,以得到多组订阅主题与对应的具有同一订阅主题的各个订阅信息块的订阅主题-信息块映射表;根据所述订阅主题-信息块映射表,构建得到多组订阅主题与具有同一订阅主题
的多个订阅分组的订阅主题-分组映射表,以及得到多组订阅分组与具有同一订阅分组的多个订阅信息块的订阅分组-信息块映射表;接收事件发布者所发布的事件信息,所述事件信息包括订阅主题和业务数据,根据所述事件信息中的订阅主题,在所述订阅主题-分组映射表以及订阅分组-信息块映射表中,查询到每个订阅分组所对应的多个订阅信息块;在每个订阅分组所对应的多个订阅信息块中任选其中的一个订阅信息块,根据所选择的订阅信息块中的事件订阅者身份信息,将所述事件信息发送至所述事件订阅者身份信息所对应的事件订阅者,以使所述事件订阅者处理所述业务数据。
17.综上所述,本技术提供一种事件管理方法,通过设计订阅信息块,生成订阅主题与订阅信息块的映射关系,监听订阅主题与订阅信息块的映射关系的变化,创建或移除订阅主题与订阅分组的映射关系,并创建或移除订阅分组与订阅信息块的映射关系,从而可以简单的实现订阅事件的创建或移除。基于上述方法,本技术还提供一种事件管理系统,可以支持订阅事件的动态创建和删除,使得事件的订阅和发布更加灵活。
附图说明
18.图1为本技术提供的事件管理系统示意图;图2为本技术提供的订阅信息块示意图;图3为本技术提供的订阅主题-信息块映射表示意图;图4为本技术提供的订阅分组-信息块映射表示意图;图5为本技术提供的订阅主题-分组映射表示意图;图6为本技术提供的一种事件管理系统的示意图;图7为本技术提供的订阅主题与事件处理器的映射关系示意图;图8为本技术提供的事件管理方法流程图;图9为本技术提供的在订单审批场景中事件管理系统的架构示意图;图10为本技术提供的在订单审批场景中订阅主题与事件处理器的映射关系示意图;图11为本技术提供的在订单审批场景中订阅信息块示意图;图12为本技术提供的在订单审批场景中订阅主题-信息块映射表示意图;图13为本技术提供的在订单审批场景中订阅主题-分组映射表示意图;图14为本技术提供的在订单审批场景中新增订阅时订阅分组-信息块映射表变化示意图;图15为本技术提供的在订单审批场景中移除订阅时订阅分组-信息块映射表变化示意图。
具体实施方式
19.以下将结合附图所示的具体实施方式对本发明进行详细描述,但这些实施方式并不限制本发明,本领域的普通技术人员根据这些实施方式所做出的结构、方法或功能上的变换均包含在本发明的保护范围内。
20.如图1所示,作为一种可选的实现方式,本技术提供一种事件管理系统100,本技术
实施例提供的事件管理系统100可以基于事件的订阅主题对事件进行订阅和/或发布。本技术实施例提供的系统包括:事件订阅模块11,订阅管理模块12以及事件发布模块13。
21.作为一种可选的实现方式,本技术提供的系统采用分布式的多机系统,因此,本技术提供的系统可以有多个事件订阅模块11以及多个事件发布模块13。
22.其中,对于每一事件订阅模块11,事件订阅模块11可以接收事件订阅者的订阅主题,生成订阅主题所对应的订阅信息块,其中,订阅信息块至少包括订阅主题、订阅分组和事件订阅者身份信息,事件订阅者身份信息包括:ip地址和端口信息,多个具有相同订阅主题的事件订阅者构成一个订阅分组。
23.订阅管理模块12用于接收每一个事件订阅模块11所发送的每一个订阅信息块,构建具有同一订阅主题的各个订阅信息块与该订阅主题的映射关系,以得到多组订阅主题与对应的具有同一订阅主题的各个订阅信息块的订阅主题-信息块映射表。
24.事件发布模块13用于根据订阅主题-信息块映射表,构建得到多组订阅主题与具有同一订阅主题的多个订阅分组的订阅主题-分组映射表,以及得到多组订阅分组与具有同一订阅分组的多个订阅信息块的订阅分组-信息块映射表。
25.作为一种可选的实现方式,事件发布模块13还用于接收事件发布者所发布的事件信息。事件信息包括订阅主题和业务数据。
26.事件发布模块13根据事件信息中的订阅主题,在订阅主题-分组映射表中查询到事件信息中的订阅主题所对应的多个订阅分组,并根据订阅分组-信息块映射表,查询到每个订阅分组所对应的多个订阅信息块,在每个订阅分组所对应的多个订阅信息块中任选其中的一个订阅信息块,根据所选择的订阅信息块中的事件订阅者身份信息,将事件信息发送至事件订阅者身份信息所对应的事件订阅者,以使事件订阅者处理业务数据。
27.本技术实施例提供的系统通过在事件订阅者新增订阅事件时设计订阅信息块,并在订阅管理模块12中维护订阅主题-信息块映射表,在事件发布模块13中生成并维护订阅主题-分组映射表以及订阅分组-信息块映射表即可实现事件订阅者的新增订阅操作。
28.相较于采用中间件事件订阅发布系统,利用本技术提供的系统进行事件订阅时,无需重新与事件发布者约定订阅主题,也无需重新对事件订阅者进行拆分,由拆分后的事件订阅者都对原来的事件订阅主题进行监听。因此,本技术提供的系统可以提供高效的事件订阅管理机制,可以支持事件的灵活订阅。
29.此外,在完成事件订阅后,可以根据事件的订阅主题查找到对应的订阅信息块,并根据订阅信息块中所包含的ip地址、端口信息等,实现事件发布模块13与事件订阅模块11之间的通信,以完成事件的发布。
30.如图2所示,其示出了本技术实施例提供的订阅信息块示意图。作为一种可选的实现方式,订阅信息块包括事件订阅者的订阅分组、事件订阅者订阅事件的订阅主题、事件订阅者的ip地址以及端口信息。此外,本技术实施例提供的订阅信息块还可以包括进程号,以便于在接收事件发布模块13所发布的事件信息时,可以根据进程号找到对应的处理程序。
31.如图3所示,其示出了本技术实施例提供的订阅主题-信息块映射表示意图。根据订阅信息块中包含的订阅主题,一个订阅主题可以与多个包含该订阅主题的订阅信息块生成映射关系。
32.类似的,对于事件发布模块13维护的订阅分组-信息块映射表如图4所示。根据订
阅信息块中的订阅分组,一个订阅分组可以与多个包含该订阅分组的订阅信息块生成映射关系。
33.如图5所示,其示出了本技术实施例提供的订阅主题-分组映射表示意图。在本技术实施例中,将订阅相同订阅主题的事件订阅者划分为同一分组。进一步的,对于多个订阅相同订阅主题的事件订阅者,可以将该多个事件订阅者划分入至少两个订阅分组,每个订阅分组中仅包含订阅该订阅主题的事件订阅者,订阅分组的设计可以根据实际需求进行设置。
34.例如,对于订阅分组的设置,对于任一事件订阅者,若该事件订阅者允许其它事件订阅者代为处理所订阅的事件,则该事件订阅者以及被允许的事件订阅者划分为同一订阅分组。具体的,假如存在三个订阅相同订阅主题的事件订阅者,若其中任一个事件订阅者处理完所订阅的事件后,剩余两个无需在对该事件进行处理,则可以将该三个事件订阅者划分为同一订阅分组。若有一个事件订阅者处理所订阅事件后,存在另一事件订阅者仍需对该事件进行处理,则这两个事件订阅者需要分入两个不同的订阅分组中。
35.如图6所示,其示出了本技术实施例提供的一种事件管理系统100的示意图。作为一种可选的实现方式,本技术实施例提供的事件订阅模块11包括:多个事件处理器111,事件处理器注册器112,事件处理器路由缓存113以及事件订阅处理器114。为了便于说明,图6中仅示例性的示出了事件订阅模块11包括一个事件处理器111的情形。
36.其中,事件处理器111用于根据接收的事件订阅者的订阅主题,生成订阅主题所对应的订阅信息块;事件处理器注册器112用于注册事件处理器111,获取订阅信息块中的订阅主题,构建订阅主题与至少一个事件处理器111的映射关系;事件处理器路由缓存113用于缓存订阅主题与至少一个事件处理器111的映射关系;事件订阅处理器114用于将订阅信息块发送至订阅管理模块12。
37.作为一种可选的实现方式,订阅主题与事件处理器111的映射关系可以如图7所示。
38.作为一种可选的实现方式,当事件订阅者新增订阅事件时,事件订阅模块11生成订阅事件的订阅主题和订阅信息块之间的映射关系,并将该映射关系发送至订阅管理模块12。
39.如图6所示,作为一种可选的实现方式,订阅管理模块12包括订阅管理处理器121以及订阅分发处理器122。
40.其中,订阅管理处理器121,用于接收事件订阅模块11所发送的订阅信息块,获取订阅信息块中的订阅主题,在订阅主题-信息块映射表中查询是否有订阅主题与订阅信息块的映射关系,若没有,则在订阅主题-信息块映射表中增加一条订阅主题与订阅信息块的映射记录,并记录该映射记录的映射变化类型为新增,若有,在所查询到的订阅主题-信息块映射的映射条目中增加订阅信息块的映射记录,以得到具有同一订阅主题的各个订阅信息块与该订阅主题的映射关系,并记录该映射记录的映射变化类型为新增;订阅分发处理器122用于将新增的订阅主题与订阅信息块的映射关系以及对应的映射关系变化类型转发至事件发布模块13。
41.作为一种可选的实现方式,订阅管理处理器121可以通过与事件订阅模块11心跳通信来维护订阅主题与订阅信息块之间的映射关系。
42.具体的,订阅管理处理器121定期向事件订阅模块11发送心跳请求信息,若在预设的时间阈值内,订阅管理处理器121没有接收到心跳响应信息,则在订阅主题-信息块映射表中删除无响应的订阅信息块的映射记录,记录该映射记录的映射变化类型为删除;订阅分发处理器122将订阅主题与无响应的订阅信息块映射记录以及对应的映射变化类型发送至事件发布模块13。
43.作为一种可选的实现方式,当事件订阅者移除已订阅事件时,可以理解的,此时事件订阅模块11与订阅管理模块12断开心跳通信连接,订阅管理模块12在订阅主题-信息块映射表中删除无响应的订阅信息块的映射记录。
44.作为一种可选的实现方式,订阅分发处理器122用于将订阅主题与订阅信息块之间的映射关系,以及订阅主题与订阅信息块之间的映射关系的变化信息发送给事件发布模块13。
45.其中,根据事件订阅者创建或移除订阅事件的操作,在本技术中订阅主题与订阅信息块之间的映射关系的变化信息可以划分为新增订阅事件和移除已订阅事件。
46.如图6所示,作为一种可选的实现方式,事件发布模块13包括订阅监听处理器131、事件路由管理器132、路由缓存133以及事件发布处理器134。
47.其中,订阅监听处理器131用于接收新增的订阅主题与订阅信息块的映射关系及对应的映射关系变化类型。
48.事件路由管理器132用于若映射关系变化类型为新增,根据订阅主题,在订阅主题-分组映射表中增加一条订阅主题与订阅分组的映射记录,并根据订阅信息块中的订阅分组,在订阅分组-信息块映射表中增加一条订阅分组与订阅信息块的映射记录,以得到更新后的订阅主题-分组映射表和订阅分组-信息块映射表;路由缓存133用于存储订阅主题-分组映射表和订阅分组-信息块映射表;若映射关系变化类型为删除,根据订阅主题和无响应的订阅信息块,在订阅分组-信息块映射表中删除对应的映射记录,以得到更新后的订阅分组-信息块映射表;事件路由管理器132在删除订阅分组-信息块映射表中对应的映射记录后,还会检测该订阅分组-信息块映射表是否为空,若删除映射记录后该订阅分组-信息块映射表为空(即,对于该订阅分组,不存在订阅信息块与该订阅分组具有映射关系),则事件路由管理器132在订阅主题-分组映射表中删除对应的订阅主题与订阅分组的映射记录,以得到更新后的订阅主题-分组映射表。根据以上说明,本技术设计订阅信息块,生成并维护了订阅主题与订阅信息块之间的映射,通过监听订阅主题与订阅信息块之间映射关系的变化,创建或移除订阅主题与订阅分组之间的映射关系,并创建并移除订阅分组与订阅信息块之间的映射关系,从而可以灵活的实现订阅事件的动态创建和删除。
49.如图6所示,作为一种可选的实现方式,本技术实施例提供的事件发布模块13还包括:事件发布处理器134,用于接收事件发布者所发布的事件信息,根据事件信息中的订阅主题,在订阅主题-分组映射表中查询到订阅主题所对应的多个订阅分组,并根据订阅分组-信息块映射表,查询到每个订阅分组所对应的多个订阅信息块,在每个订阅分组所对
应的多个订阅信息块中任选其中的一个订阅信息块,根据所选择的订阅信息块中的事件订阅者身份信息,将事件信息发送至对应的事件订阅模块11。
50.作为一种可选的实现方式,事件订阅模块11还包括事件接受处理器115。
51.事件接受处理器115,与事件发布处理器134连接,接收事件信息,根据事件信息中的订阅主题在事件处理器路由缓存113中查询对应的各个事件处理器111,并将事件信息发送至每一个事情处理器;事件处理器111,获取事件信息中的订阅主题,根据订阅主题所对应的订阅信息块,获取订阅信息块中的事件订阅者身份信息,根据事件订阅者身份信息中的ip地址和端口号,将事件信息发送对应的事件订阅者,以使事件订阅者处理事件信息中的业务数据,其中,事件订阅者身份信息至少包括ip地址和端口号。
52.具体的,本技术提供的事件管理系统100可以通过事件发布处理器134进行事件发布。
53.在事件发布者进行事件发布操作时,本技术提供的事件管理系统100可以执行如本技术提供的事件发布步骤。
54.具体的,事件发布者通过事件发布处理器134发布事件信息,事件信息包括事件的订阅主题和事件需要处理的业务数据;事件路由管理器132根据发布事件的订阅主题,获取路由缓存133中维护的订阅主题-分组映射表,以及,订阅分组-信息块映射表。
55.事件路由管理器132基于订阅主题与订阅分组的映射关系,以及,订阅分组与订阅信息块的映射关系,确定至少一个订阅信息块。
56.在实际应用中,基于事件发布模块13所发布事件的订阅主题,可以有多个订阅分组与该订阅主题存在映射关系。类似的,对于同一订阅分组,可以有多个订阅信息块与同一订阅分组存在映射关系。
57.因此,在事件路由管理器132确定订阅信息块时,根据订阅主题,可以确定一组订阅分组,再根据每个订阅分组可以分别获得一组订阅信息块。对于每组订阅信息块,选择其中之一,解析订阅信息块获得ip地址和端口信息,并根据ip地址和端口信息向事件订阅者所注册的事件订阅模块11的物理地址发布事件信息。
58.对于任一个事件订阅模块11,可能注册有多个相同订阅主题的订阅信息块,按照本技术提供的事件发布步骤,按照事件的订阅主题,只需根据映射关系索引到任一订阅分组中的一个订阅信息块即可向事件订阅模块11发布事件信息,并且在事件订阅模块11中,根据事件信息中的订阅主题,即可对在该订阅模块中注册的所有具有相同订阅主题的订阅信息块进行业务处理,大大提高了事件发布的效率。同时,可以增强本技术提供的系统的鲁棒性。
59.作为一种可选的实现方式,事件接受处理器115接收事件信息,通过事件处理器注册器112解析事件信息获得订阅主题,并根据订阅主题与事件处理器111的映射关系查找对应的事件处理器111,事件处理器111根据事件信息进行业务事件处理。
60.如图8所示,本技术还提供一种事件管理方法,该方法包括以下步骤:接收事件订阅者的订阅主题,生成订阅主题所对应的订阅信息块,其中,订阅信息块至少包括订阅主题、订阅分组和事件订阅者身份信息;
接收每一个事件订阅模块11所发送的每一个订阅信息块,构建具有同一订阅主题的各个订阅信息块与该订阅主题的映射关系,以得到多组订阅主题与对应的具有同一订阅主题的各个订阅信息块的订阅主题-信息块映射表;根据订阅主题-信息块映射表,构建得到多组订阅主题与具有同一订阅主题的多个订阅分组的订阅主题-分组映射表,以及得到多组订阅分组与具有同一订阅分组的多个订阅信息块的订阅分组-信息块映射表;接收事件发布者所发布的事件信息,事件信息包括订阅主题和业务数据,根据事件信息中的订阅主题,在订阅主题-分组映射表以及订阅分组-信息块映射表中,查询到每个订阅分组所对应的多个订阅信息块;在每个订阅分组所对应的多个订阅信息块中任选其中的一个订阅信息块,根据所选择的订阅信息块中的事件订阅者身份信息,将事件信息发送至事件订阅者身份信息所对应的事件订阅者,以使事件订阅者处理业务数据。
61.为了更进一步的说明本技术实施例提供的事件管理系统100,以下将结合具体地使用场景进行说明。作为一种可选的实现方式,本技术实施例提供的事件管理系统100可以用于订单的审批。
62.如图9所示,其示出了本技术提供的在订单审批场景中事件管理系统100的架构示意图。
63.如图9所示,在订单审批场景中,事件管理系统100包括订单管理部分、订阅管理部分以及审批部分。其中,订单管理部分可以是分布式的多机系统,订单管理部分中的每台机器均可以视为一事件订阅者,并且,每台机器上均可以包括事件订阅模块11。审批部分可以是分布式的多机系统,审批部分中的每台机器均可以视为一事件发布者,并且,每台机器上均可以包括事件发布模块13。订阅管理部分包括订阅管理模块12。
64.基于以上事件管理系统100,申请人(即事件订阅者)可以通过订单管理部分提交取消订单的审批申请,该审批申请提交给审批部分后该订单会被锁定,在审批期间申请人无法对该订单进行任何操作。
65.审批管理人(即事件发布者)可以对该取消订单的审批申请进行同意、拒绝、取消等操作,针对不同的操作,订单管理部分需要对该订单进行不同的处理:审批管理人若同意订单取消申请,则订单管理部分会将该订单的状态变为“取消”,同时还会对库存、付款信息进行相应变更,订单解锁;审批管理人若驳回订单取消申请,则该订单不会做任何修改,但审批申请标记为“驳回”,可以附带驳回原因,订单解锁;审批管理人若取消订单取消申请,则该订单不会做任何修改,但审批申请标记为“取消”,订单解锁。
66.对于以上订单取消的审批场景,本技术实施例提供的事件管理系统100可以有订单取消审批的事件订阅流程以及订单取消审批的事件发布流程。
67.对于订单取消审批场景,事先会约定一订阅主题,例如,在本案例中,可以约定订阅主题为“order_cancel_app_topic”。为了便于说明,在本技术实施例中,提供三台机器订阅这一订阅主题,因此,这三台机器可以构成一订阅分组(ordercancelgroup)。进一步的,对于该三台订阅同一订阅主题的机器,可以按照实际需求进一步分为至少两个订阅分组。
68.在完成事先的订阅主题约定以及对订阅分组的设置后,即可进入以下事件订阅流程:对于订单管理部分中任一机器上的事件订阅模块11,通过事件处理器注册器112注册事件处理器111(例如,在此实施例中,注册的事件处理器111可以命名为“ordercancelapphandler”),获取订阅信息块中的订阅主题,构建订阅主题与至少一个事件处理器111的映射关系,在本技术提供的订单取消审批场景中,订阅主题与事件处理器111的映射关系如图10所示;其中,事件处理器注册器112注册事件处理器111时,事件处理器111会生成与订阅主题对应的订阅信息块,在订单取消审批这一场景中,订阅信息块如图11所示。
69.订阅管理模块12中,订阅管理处理器121接收所有事件订阅模块11所发送的订阅信息块,构建订阅主题-信息块映射表,记录该映射记录的映射变化类型为新增。订阅主题-信息块映射表如图12所示。订阅分发处理器122将新增的订阅主题与订阅信息块的映射关系以及对应的映射关系变化类型转发至事件发布模块13。
70.在审批部分中,各个机器上的事件发布模块13接收映射关系变化类型以及新增的订阅主题与订阅信息块的映射关系,根据订阅主题,在订阅主题-分组映射表中增加一条订阅主题与订阅分组的映射记录,订阅主题与订阅分组的映射关系如图13所示。并且,在订阅分组-信息块映射表中增加一条订阅分组与订阅信息块的映射记录,以完成事件订阅流程。例如,本技术实施例提供的订阅管理部分中,三台机器对同一订阅主题进行订阅,则订阅分组-信息块映射表变化如图14所示。
71.对于移除已订阅事件,例如,机器3移除订阅事件,则在订阅分组-信息块映射表中移除对应的订阅分组与订阅信息块的映射关系,订阅分组-信息块映射表变化如图15所示。并且,若移除对应的订阅分组与订阅信息块的映射关系后,订阅分组-信息块映射表的内容为空,则将对应的订阅主题-分组映射表删除。
72.对于事件发布流程,具体可以进行如下步骤:事件发布模块13发布主题为order_cancel_app_topic的事件,所发布事件的事件信息包括:订阅主题以及业务数据。其中,业务数据可以包括订单id,审批结果(如同意、驳回、取消等)。
73.事件发布模块13根据order_cancel_app_topic这一订阅主题,基于订阅主题-分组映射表,可以找到ordercancelgroup这一订阅分组,并根据订阅分组-信息块映射表,找到一组订阅信息块,选择其中一个订阅信息块,按照该订阅信息块,将订阅主题以及业务数据发送至对应的事件订阅模块11中(如选择机器1对应的订阅信息块,则将订阅主题以及业务数据发送至机器1的事件订阅模块11中),接收到订阅主题及业务数据的事件订阅模块11对该事件进行处理。
74.综上,本技术提供一种事件管理系统100及方法,通过设计订阅信息块,生成订阅主题与订阅信息块的映射关系,监听订阅主题与订阅信息块的映射关系的变化,创建或移除订阅主题与订阅分组的映射关系,并创建或移除订阅分组与订阅信息块的映射关系,从而可以简单的实现订阅事件的创建或移除。基于上述方法,本技术还提供一种事件管理系统100,可以支持订阅事件的动态创建和删除,使得事件的订阅和发布更加灵活。
75.以上所揭露的仅为本发明的较佳实施例而已,然其并非用以限定本发明之权利范
围,本领域普通技术人员可以理解:在不脱离本发明及所附的权利要求的精神和范围内,改变、修饰、替代、组合、简化,均应为等效的置换方式,仍属于发明所涵盖的范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献