CN115550439B - 事件管理系统及方法 - Google Patents
事件管理系统及方法 Download PDFInfo
- Publication number
- CN115550439B CN115550439B CN202211503211.8A CN202211503211A CN115550439B CN 115550439 B CN115550439 B CN 115550439B CN 202211503211 A CN202211503211 A CN 202211503211A CN 115550439 B CN115550439 B CN 115550439B
- Authority
- CN
- China
- Prior art keywords
- subscription
- event
- information
- information block
- group
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请提供一种事件管理系统及方法,系统包括:多个事件订阅模块,事件订阅模块用于生成订阅主题所对应的订阅信息块;订阅管理模块,用于接收订阅信息块,构建订阅主题‑信息块映射表;多个事件发布模块,用于根据订阅主题‑信息块映射表,构建得到订阅主题‑分组映射表,以及订阅分组‑信息块映射表;事件发布模块还用于接收事件发布者所发布的事件信息,根据事件信息中的订阅主题,在订阅主题‑分组映射表以及订阅分组‑信息块映射表中,查询得到每个订阅分组所对应的多个订阅信息块,在每个订阅分组中任选其中的一个订阅信息块,根据所选择的订阅信息块,将事件信息发送至对应的事件订阅者,以使事件订阅者处理业务数据。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种事件管理系统及方法。
背景技术
业务处理的方式也随着技术的发展,并结合业务的自身特性,出现了多种多样的处理框架,基于事件的框架也随着这种契机,也得到了很大的发展,传统基于Kafka、RocketMQ等消息中间件的方式作为事件的订阅和发布框架是一种比较流行的方式,其具体实现方式是事件订阅者和事件发布者提前约定一个特定的订阅主题,基于这个约定的订阅主题,事件发布者发布该订阅主题的事件到消息中间件,事件订阅者监听消息中间件该订阅主题的事件,当事件订阅者接受到消息中间件约定订阅主题的事件,即可对事件进行业务处理,复杂的业务通过这种基于消息中间件的事件订阅和发布方式,实现了系统与系统之间的解耦,使得业务可以快速的进行迭代和升级。然而基于消息中间的事件发布和订阅方式,随着业务的发展,其处理方式所带来的弊端也越来越明显。
首先,随着业务的迭代,事件发布者需要发布的事件也越来越复杂,需要对业务进行拆分细化,随之而来的是事件发布者发布事件订阅主题也需要拆分细化,基于消息中间件的事件订阅和发布系统,对于这种拆分细化的事件,事件订阅者有两种处理方式:一是重新和事件发布者约定的订阅主题,然后重新对这些订阅主题进行监听;二是保持原有的订阅主题不变,对事件订阅者进行拆分,由拆分后的事件订阅者都对原来的事件订阅主题进行监听,然后对接受到事件进行过滤和处理。这两种方式都有其缺点,前者需要重新通过消息中间件创建订阅主题,消息中间件的订阅主题是一个比较重且复杂的数据结构,其对于订阅主题的动态创建和删除的支持并不十分理想,需要人的参与来对这种订阅主题所耗费的资源进行评估,然后才能创建订阅主题;而对于后者,需要对事件订阅者进行重新的改造,每个拆分后的事件订阅者,都需要原来的事件进行过滤,这就导致了事件订阅者接收到了许多无用的事件,导致网络资源和系统资源的浪费。
其次,动态订阅主题事件的业务场景也越来越多,基于消息中间件约定订阅主题的事件订阅和发布方式,严重制约了事件订阅和发布的灵活性。
基于上述传统的通过消息中间件的事件订阅和发布方式所表现出来的缺点,需要一种新的事件订阅与发布方式,来支持事件的灵活订阅和发布。
发明内容
本申请的目的在于提供一种技术方案,解决现有技术中通过消息中间件的事件订阅和发布方式存在的订阅操作繁琐,网络资源和系统资源浪费的问题。
基于以上问题,本申请提供一种事件管理系统,包括:
多个事件订阅模块,所述事件订阅模块用于接收事件订阅者的订阅主题,生成所述订阅主题所对应的订阅信息块,其中,所述订阅信息块至少包括订阅主题、订阅分组和事件订阅者身份信息;
订阅管理模块,用于接收每一个事件订阅模块所发送的每一个订阅信息块,构建具有同一订阅主题的各个订阅信息块与该订阅主题的映射关系,以得到多组订阅主题与对应的具有同一订阅主题的各个订阅信息块的订阅主题-信息块映射表;
多个事件发布模块,用于根据所述订阅主题-信息块映射表,构建得到多组订阅主题与具有同一订阅主题的多个订阅分组的订阅主题-分组映射表,以及得到多组订阅分组与具有同一订阅分组的多个订阅信息块的订阅分组-信息块映射表;
所述事件发布模块,还用于接收事件发布者所发布的事件信息,所述事件信息包括订阅主题和业务数据,根据所述事件信息中的订阅主题,在所述订阅主题-分组映射表以及订阅分组-信息块映射表中,查询得到每个订阅分组所对应的多个订阅信息块,在每个订阅分组所对应的多个订阅信息块中任选其中的一个订阅信息块,根据所选择的订阅信息块中的事件订阅者身份信息,将所述事件信息发送至所述事件订阅者身份信息所对应的事件订阅者,以使所述事件订阅者处理所述业务数据。
进一步的,所述事件订阅模块包括:
多个事件处理器,所述事件处理器用于根据接收的事件订阅者的订阅主题,生成所述订阅主题所对应的订阅信息块;
事件处理器注册器,用于注册所述事件处理器,获取所述订阅信息块中的订阅主题,构建所述订阅主题与至少一个事件处理器的映射关系;
事件处理器路由缓存,用于缓存所述订阅主题与至少一个事件处理器的映射关系;
事件订阅处理器,用于将所述订阅信息块发送至所述订阅管理模块。
进一步的,所述订阅管理模块包括:
订阅管理处理器,用于接收所述事件订阅模块所发送的订阅信息块,获取所述订阅信息块中的订阅主题,在所述订阅主题-信息块映射表中查询是否有所述订阅主题与订阅信息块的映射关系,若没有,则在所述订阅主题-信息块映射表中增加一条所述订阅主题与所述订阅信息块的映射记录,并记录该映射记录的映射变化类型为新增,以得到具有同一订阅主题的各个订阅信息块与该订阅主题的映射关系,并记录该映射记录的映射变化类型为新增;
订阅分发处理器,用于将新增的订阅主题与订阅信息块的映射关系以及对应的映射关系变化类型转发至所述事件发布模块。
进一步的,所述事件发布模块包括:
订阅监听处理器,用于接收新增的订阅主题与订阅信息块的映射关系及对应的映射关系变化类型;
路由缓存,用于存储所述订阅主题-分组映射表和所述订阅分组-信息块映射表;
事件路由管理器,用于若所述映射关系变化类型为新增,根据所述订阅主题,在所述订阅主题-分组映射表中增加一条订阅主题与订阅分组的映射记录,并根据所述订阅信息块中的订阅分组,在所述订阅分组-信息块映射表中增加一条订阅分组与订阅信息块的映射记录,以得到更新后的订阅主题-分组映射表和订阅分组-信息块映射表;
所述路由缓存,还用于存储所述更新后的订阅主题-分组映射表和订阅分组-信息块映射表。
进一步的,所述订阅管理处理器,定期向所述事件订阅模块发送心跳请求信息,若在预设的时间阈值内,所述订阅管理处理器没有接收到心跳响应信息,则在所述订阅主题-信息块映射表中删除无响应的订阅信息块的映射记录,记录该映射记录的映射变化类型为删除;
所述订阅分发处理器,将订阅主题与无响应的订阅信息块映射记录以及对应的映射变化类型发送至所述事件发布模块。
进一步的,所述订阅监听处理器,接收所述订阅主题与无响应的订阅信息块的映射记录以及对应的映射变化类型;
事件路由管理器,若所述映射关系变化类型为删除,根据所述订阅主题和无响应的订阅信息块,在所述订阅主题-分组映射表中和订阅分组-信息块映射表中删除对应的映射记录,以得到更新后的订阅分组-信息块映射表;
事件路由管理器在删除订阅分组-信息块映射表中对应的映射记录后,还会检测该订阅分组-信息块映射表是否为空,若删除映射记录后该订阅分组-信息块映射表为空,则事件路由管理器在订阅主题-分组映射表中删除对应的订阅主题与订阅分组的映射记录,以得到更新后的订阅主题-分组映射表;
所述路由缓存,还用于存储所述更新后的订阅主题-分组映射表和订阅分组-信息块映射表。
进一步的,所述事件发布模块还包括:
事件发布处理器,用于接收事件发布者所发布的事件信息,根据所述事件信息中的订阅主题,在所述订阅主题-分组映射表中查询到所述订阅主题所对应的多个订阅分组,并根据订阅分组-信息块映射表,查询到每个订阅分组所对应的多个订阅信息块,在每个订阅分组所对应的多个订阅信息块中任选其中的一个订阅信息块,根据所选择的订阅信息块中的事件订阅者身份信息,将所述事件信息发送至对应的事件订阅模块。
进一步的,所所述事件订阅模块包括:
事件接受处理器,与所述事件发布处理器连接,接收所述事件信息,根据所述事件信息中的订阅主题在所述事件处理器路由缓存中查询对应的各个事件处理器,并将所述事件信息发送至每一个事情处理器;
所述事件处理器,获取所述事件信息中的订阅主题,根据所述订阅主题所对应的订阅信息块,获取所述订阅信息块中的事件订阅者身份信息,根据所述事件订阅者身份信息中的IP地址和端口号,将所述事件信息发送对应的事件订阅者,以使所述事件订阅者处理所述事件信息中的业务数据,其中,所述事件订阅者身份信息至少包括IP地址和端口号。
进一步的,具有同一个订阅主题的多个事件订阅者构成一个订阅分组。
本申请还提供一种事件管理方法,所述方法包括:
接收事件订阅者的订阅主题,生成所述订阅主题所对应的订阅信息块,其中,所述订阅信息块至少包括订阅主题、订阅分组和事件订阅者身份信息;
接收每一个事件订阅模块所发送的每一个订阅信息块,构建具有同一订阅主题的各个订阅信息块与该订阅主题的映射关系,以得到多组订阅主题与对应的具有同一订阅主题的各个订阅信息块的订阅主题-信息块映射表;
根据所述订阅主题-信息块映射表,构建得到多组订阅主题与具有同一订阅主题的多个订阅分组的订阅主题-分组映射表,以及得到多组订阅分组与具有同一订阅分组的多个订阅信息块的订阅分组-信息块映射表;
接收事件发布者所发布的事件信息,所述事件信息包括订阅主题和业务数据,根据所述事件信息中的订阅主题,在所述订阅主题-分组映射表以及订阅分组-信息块映射表中,查询到每个订阅分组所对应的多个订阅信息块;
在每个订阅分组所对应的多个订阅信息块中任选其中的一个订阅信息块,根据所选择的订阅信息块中的事件订阅者身份信息,将所述事件信息发送至所述事件订阅者身份信息所对应的事件订阅者,以使所述事件订阅者处理所述业务数据。
综上所述,本申请提供一种事件管理方法,通过设计订阅信息块,生成订阅主题与订阅信息块的映射关系,监听订阅主题与订阅信息块的映射关系的变化,创建或移除订阅主题与订阅分组的映射关系,并创建或移除订阅分组与订阅信息块的映射关系,从而可以简单的实现订阅事件的创建或移除。基于上述方法,本申请还提供一种事件管理系统,可以支持订阅事件的动态创建和删除,使得事件的订阅和发布更加灵活。
附图说明
图1为本申请提供的事件管理系统示意图;
图2为本申请提供的订阅信息块示意图;
图3为本申请提供的订阅主题-信息块映射表示意图;
图4为本申请提供的订阅分组-信息块映射表示意图;
图5为本申请提供的订阅主题-分组映射表示意图;
图6为本申请提供的一种事件管理系统的示意图;
图7为本申请提供的订阅主题与事件处理器的映射关系示意图;
图8为本申请提供的事件管理方法流程图;
图9为本申请提供的在订单审批场景中事件管理系统的架构示意图;
图10为本申请提供的在订单审批场景中订阅主题与事件处理器的映射关系示意图;
图11为本申请提供的在订单审批场景中订阅信息块示意图;
图12为本申请提供的在订单审批场景中订阅主题-信息块映射表示意图;
图13为本申请提供的在订单审批场景中订阅主题-分组映射表示意图;
图14为本申请提供的在订单审批场景中新增订阅时订阅分组-信息块映射表变化示意图;
图15为本申请提供的在订单审批场景中移除订阅时订阅分组-信息块映射表变化示意图。
具体实施方式
以下将结合附图所示的具体实施方式对本发明进行详细描述,但这些实施方式并不限制本发明,本领域的普通技术人员根据这些实施方式所做出的结构、方法或功能上的变换均包含在本发明的保护范围内。
如图1所示,作为一种可选的实现方式,本申请提供一种事件管理系统100,本申请实施例提供的事件管理系统100可以基于事件的订阅主题对事件进行订阅和/或发布。本申请实施例提供的系统包括:事件订阅模块11,订阅管理模块12以及事件发布模块13。
作为一种可选的实现方式,本申请提供的系统采用分布式的多机系统,因此,本申请提供的系统可以有多个事件订阅模块11以及多个事件发布模块13。
其中,对于每一事件订阅模块11,事件订阅模块11可以接收事件订阅者的订阅主题,生成订阅主题所对应的订阅信息块,其中,订阅信息块至少包括订阅主题、订阅分组和事件订阅者身份信息,事件订阅者身份信息包括:IP地址和端口信息,多个具有相同订阅主题的事件订阅者构成一个订阅分组。
订阅管理模块12用于接收每一个事件订阅模块11所发送的每一个订阅信息块,构建具有同一订阅主题的各个订阅信息块与该订阅主题的映射关系,以得到多组订阅主题与对应的具有同一订阅主题的各个订阅信息块的订阅主题-信息块映射表。
事件发布模块13用于根据订阅主题-信息块映射表,构建得到多组订阅主题与具有同一订阅主题的多个订阅分组的订阅主题-分组映射表,以及得到多组订阅分组与具有同一订阅分组的多个订阅信息块的订阅分组-信息块映射表。
作为一种可选的实现方式,事件发布模块13还用于接收事件发布者所发布的事件信息。事件信息包括订阅主题和业务数据。
事件发布模块13根据事件信息中的订阅主题,在订阅主题-分组映射表中查询到事件信息中的订阅主题所对应的多个订阅分组,并根据订阅分组-信息块映射表,查询到每个订阅分组所对应的多个订阅信息块,在每个订阅分组所对应的多个订阅信息块中任选其中的一个订阅信息块,根据所选择的订阅信息块中的事件订阅者身份信息,将事件信息发送至事件订阅者身份信息所对应的事件订阅者,以使事件订阅者处理业务数据。
本申请实施例提供的系统通过在事件订阅者新增订阅事件时设计订阅信息块,并在订阅管理模块12中维护订阅主题-信息块映射表,在事件发布模块13中生成并维护订阅主题-分组映射表以及订阅分组-信息块映射表即可实现事件订阅者的新增订阅操作。
相较于采用中间件事件订阅发布系统,利用本申请提供的系统进行事件订阅时,无需重新与事件发布者约定订阅主题,也无需重新对事件订阅者进行拆分,由拆分后的事件订阅者都对原来的事件订阅主题进行监听。因此,本申请提供的系统可以提供高效的事件订阅管理机制,可以支持事件的灵活订阅。
此外,在完成事件订阅后,可以根据事件的订阅主题查找到对应的订阅信息块,并根据订阅信息块中所包含的IP地址、端口信息等,实现事件发布模块13与事件订阅模块11之间的通信,以完成事件的发布。
如图2所示,其示出了本申请实施例提供的订阅信息块示意图。作为一种可选的实现方式,订阅信息块包括事件订阅者的订阅分组、事件订阅者订阅事件的订阅主题、事件订阅者的IP地址以及端口信息。此外,本申请实施例提供的订阅信息块还可以包括进程号,以便于在接收事件发布模块13所发布的事件信息时,可以根据进程号找到对应的处理程序。
如图3所示,其示出了本申请实施例提供的订阅主题-信息块映射表示意图。根据订阅信息块中包含的订阅主题,一个订阅主题可以与多个包含该订阅主题的订阅信息块生成映射关系。
类似的,对于事件发布模块13维护的订阅分组-信息块映射表如图4所示。根据订阅信息块中的订阅分组,一个订阅分组可以与多个包含该订阅分组的订阅信息块生成映射关系。
如图5所示,其示出了本申请实施例提供的订阅主题-分组映射表示意图。在本申请实施例中,将订阅相同订阅主题的事件订阅者划分为同一分组。进一步的,对于多个订阅相同订阅主题的事件订阅者,可以将该多个事件订阅者划分入至少两个订阅分组,每个订阅分组中仅包含订阅该订阅主题的事件订阅者,订阅分组的设计可以根据实际需求进行设置。
例如,对于订阅分组的设置,对于任一事件订阅者,若该事件订阅者允许其它事件订阅者代为处理所订阅的事件,则该事件订阅者以及被允许的事件订阅者划分为同一订阅分组。具体的,假如存在三个订阅相同订阅主题的事件订阅者,若其中任一个事件订阅者处理完所订阅的事件后,剩余两个无需在对该事件进行处理,则可以将该三个事件订阅者划分为同一订阅分组。若有一个事件订阅者处理所订阅事件后,存在另一事件订阅者仍需对该事件进行处理,则这两个事件订阅者需要分入两个不同的订阅分组中。
如图6所示,其示出了本申请实施例提供的一种事件管理系统100的示意图。作为一种可选的实现方式,本申请实施例提供的事件订阅模块11包括:多个事件处理器111,事件处理器注册器112,事件处理器路由缓存113以及事件订阅处理器114。为了便于说明,图6中仅示例性的示出了事件订阅模块11包括一个事件处理器111的情形。
其中,事件处理器111用于根据接收的事件订阅者的订阅主题,生成订阅主题所对应的订阅信息块;
事件处理器注册器112用于注册事件处理器111,获取订阅信息块中的订阅主题,构建订阅主题与至少一个事件处理器111的映射关系;
事件处理器路由缓存113用于缓存订阅主题与至少一个事件处理器111的映射关系;
事件订阅处理器114用于将订阅信息块发送至订阅管理模块12。
作为一种可选的实现方式,订阅主题与事件处理器111的映射关系可以如图7所示。
作为一种可选的实现方式,当事件订阅者新增订阅事件时,事件订阅模块11生成订阅事件的订阅主题和订阅信息块之间的映射关系,并将该映射关系发送至订阅管理模块12。
如图6所示,作为一种可选的实现方式,订阅管理模块12包括订阅管理处理器121以及订阅分发处理器122。
其中,订阅管理处理器121,用于接收事件订阅模块11所发送的订阅信息块,获取订阅信息块中的订阅主题,在订阅主题-信息块映射表中查询是否有订阅主题与订阅信息块的映射关系,若没有,则在订阅主题-信息块映射表中增加一条订阅主题与订阅信息块的映射记录,并记录该映射记录的映射变化类型为新增,若有,在所查询到的订阅主题-信息块映射的映射条目中增加订阅信息块的映射记录,以得到具有同一订阅主题的各个订阅信息块与该订阅主题的映射关系,并记录该映射记录的映射变化类型为新增;
订阅分发处理器122用于将新增的订阅主题与订阅信息块的映射关系以及对应的映射关系变化类型转发至事件发布模块13。
作为一种可选的实现方式,订阅管理处理器121可以通过与事件订阅模块11心跳通信来维护订阅主题与订阅信息块之间的映射关系。
具体的,订阅管理处理器121定期向事件订阅模块11发送心跳请求信息,若在预设的时间阈值内,订阅管理处理器121没有接收到心跳响应信息,则在订阅主题-信息块映射表中删除无响应的订阅信息块的映射记录,记录该映射记录的映射变化类型为删除;
订阅分发处理器122将订阅主题与无响应的订阅信息块映射记录以及对应的映射变化类型发送至事件发布模块13。
作为一种可选的实现方式,当事件订阅者移除已订阅事件时,可以理解的,此时事件订阅模块11与订阅管理模块12断开心跳通信连接,订阅管理模块12在订阅主题-信息块映射表中删除无响应的订阅信息块的映射记录。
作为一种可选的实现方式,订阅分发处理器122用于将订阅主题与订阅信息块之间的映射关系,以及订阅主题与订阅信息块之间的映射关系的变化信息发送给事件发布模块13。
其中,根据事件订阅者创建或移除订阅事件的操作,在本申请中订阅主题与订阅信息块之间的映射关系的变化信息可以划分为新增订阅事件和移除已订阅事件。
如图6所示,作为一种可选的实现方式,事件发布模块13包括订阅监听处理器131、事件路由管理器132、路由缓存133以及事件发布处理器134。
其中,订阅监听处理器131用于接收新增的订阅主题与订阅信息块的映射关系及对应的映射关系变化类型。
事件路由管理器132用于若映射关系变化类型为新增,根据订阅主题,在订阅主题-分组映射表中增加一条订阅主题与订阅分组的映射记录,并根据订阅信息块中的订阅分组,在订阅分组-信息块映射表中增加一条订阅分组与订阅信息块的映射记录,以得到更新后的订阅主题-分组映射表和订阅分组-信息块映射表;
路由缓存133用于存储订阅主题-分组映射表和订阅分组-信息块映射表;
若映射关系变化类型为删除,根据订阅主题和无响应的订阅信息块,在订阅分组-信息块映射表中删除对应的映射记录,以得到更新后的订阅分组-信息块映射表;
事件路由管理器132在删除订阅分组-信息块映射表中对应的映射记录后,还会检测该订阅分组-信息块映射表是否为空,若删除映射记录后该订阅分组-信息块映射表为空(即,对于该订阅分组,不存在订阅信息块与该订阅分组具有映射关系),则事件路由管理器132在订阅主题-分组映射表中删除对应的订阅主题与订阅分组的映射记录,以得到更新后的订阅主题-分组映射表。根据以上说明,本申请设计订阅信息块,生成并维护了订阅主题与订阅信息块之间的映射,通过监听订阅主题与订阅信息块之间映射关系的变化,创建或移除订阅主题与订阅分组之间的映射关系,并创建并移除订阅分组与订阅信息块之间的映射关系,从而可以灵活的实现订阅事件的动态创建和删除。
如图6所示,作为一种可选的实现方式,本申请实施例提供的事件发布模块13还包括:
事件发布处理器134,用于接收事件发布者所发布的事件信息,根据事件信息中的订阅主题,在订阅主题-分组映射表中查询到订阅主题所对应的多个订阅分组,并根据订阅分组-信息块映射表,查询到每个订阅分组所对应的多个订阅信息块,在每个订阅分组所对应的多个订阅信息块中任选其中的一个订阅信息块,根据所选择的订阅信息块中的事件订阅者身份信息,将事件信息发送至对应的事件订阅模块11。
作为一种可选的实现方式,事件订阅模块11还包括事件接受处理器115。
事件接受处理器115,与事件发布处理器134连接,接收事件信息,根据事件信息中的订阅主题在事件处理器路由缓存113中查询对应的各个事件处理器111,并将事件信息发送至每一个事情处理器;
事件处理器111,获取事件信息中的订阅主题,根据订阅主题所对应的订阅信息块,获取订阅信息块中的事件订阅者身份信息,根据事件订阅者身份信息中的IP地址和端口号,将事件信息发送对应的事件订阅者,以使事件订阅者处理事件信息中的业务数据,其中,事件订阅者身份信息至少包括IP地址和端口号。
具体的,本申请提供的事件管理系统100可以通过事件发布处理器134进行事件发布。
在事件发布者进行事件发布操作时,本申请提供的事件管理系统100可以执行如本申请提供的事件发布步骤。
具体的,事件发布者通过事件发布处理器134发布事件信息,事件信息包括事件的订阅主题和事件需要处理的业务数据;
事件路由管理器132根据发布事件的订阅主题,获取路由缓存133中维护的订阅主题-分组映射表,以及,订阅分组-信息块映射表。
事件路由管理器132基于订阅主题与订阅分组的映射关系,以及,订阅分组与订阅信息块的映射关系,确定至少一个订阅信息块。
在实际应用中,基于事件发布模块13所发布事件的订阅主题,可以有多个订阅分组与该订阅主题存在映射关系。类似的,对于同一订阅分组,可以有多个订阅信息块与同一订阅分组存在映射关系。
因此,在事件路由管理器132确定订阅信息块时,根据订阅主题,可以确定一组订阅分组,再根据每个订阅分组可以分别获得一组订阅信息块。对于每组订阅信息块,选择其中之一,解析订阅信息块获得IP地址和端口信息,并根据IP地址和端口信息向事件订阅者所注册的事件订阅模块11的物理地址发布事件信息。
对于任一个事件订阅模块11,可能注册有多个相同订阅主题的订阅信息块,按照本申请提供的事件发布步骤,按照事件的订阅主题,只需根据映射关系索引到任一订阅分组中的一个订阅信息块即可向事件订阅模块11发布事件信息,并且在事件订阅模块11中,根据事件信息中的订阅主题,即可对在该订阅模块中注册的所有具有相同订阅主题的订阅信息块进行业务处理,大大提高了事件发布的效率。同时,可以增强本申请提供的系统的鲁棒性。
作为一种可选的实现方式,事件接受处理器115接收事件信息,通过事件处理器注册器112解析事件信息获得订阅主题,并根据订阅主题与事件处理器111的映射关系查找对应的事件处理器111,事件处理器111根据事件信息进行业务事件处理。
如图8所示,本申请还提供一种事件管理方法,该方法包括以下步骤:
接收事件订阅者的订阅主题,生成订阅主题所对应的订阅信息块,其中,订阅信息块至少包括订阅主题、订阅分组和事件订阅者身份信息;
接收每一个事件订阅模块11所发送的每一个订阅信息块,构建具有同一订阅主题的各个订阅信息块与该订阅主题的映射关系,以得到多组订阅主题与对应的具有同一订阅主题的各个订阅信息块的订阅主题-信息块映射表;
根据订阅主题-信息块映射表,构建得到多组订阅主题与具有同一订阅主题的多个订阅分组的订阅主题-分组映射表,以及得到多组订阅分组与具有同一订阅分组的多个订阅信息块的订阅分组-信息块映射表;
接收事件发布者所发布的事件信息,事件信息包括订阅主题和业务数据,根据事件信息中的订阅主题,在订阅主题-分组映射表以及订阅分组-信息块映射表中,查询到每个订阅分组所对应的多个订阅信息块;
在每个订阅分组所对应的多个订阅信息块中任选其中的一个订阅信息块,根据所选择的订阅信息块中的事件订阅者身份信息,将事件信息发送至事件订阅者身份信息所对应的事件订阅者,以使事件订阅者处理业务数据。
为了更进一步的说明本申请实施例提供的事件管理系统100,以下将结合具体地使用场景进行说明。作为一种可选的实现方式,本申请实施例提供的事件管理系统100可以用于订单的审批。
如图9所示,其示出了本申请提供的在订单审批场景中事件管理系统100的架构示意图。
如图9所示,在订单审批场景中,事件管理系统100包括订单管理部分、订阅管理部分以及审批部分。其中,订单管理部分可以是分布式的多机系统,订单管理部分中的每台机器均可以视为一事件订阅者,并且,每台机器上均可以包括事件订阅模块11。审批部分可以是分布式的多机系统,审批部分中的每台机器均可以视为一事件发布者,并且,每台机器上均可以包括事件发布模块13。订阅管理部分包括订阅管理模块12。
基于以上事件管理系统100,申请人(即事件订阅者)可以通过订单管理部分提交取消订单的审批申请,该审批申请提交给审批部分后该订单会被锁定,在审批期间申请人无法对该订单进行任何操作。
审批管理人(即事件发布者)可以对该取消订单的审批申请进行同意、拒绝、取消等操作,针对不同的操作,订单管理部分需要对该订单进行不同的处理:
审批管理人若同意订单取消申请,则订单管理部分会将该订单的状态变为“取消”,同时还会对库存、付款信息进行相应变更,订单解锁;
审批管理人若驳回订单取消申请,则该订单不会做任何修改,但审批申请标记为“驳回”,可以附带驳回原因,订单解锁;
审批管理人若取消订单取消申请,则该订单不会做任何修改,但审批申请标记为“取消”,订单解锁。
对于以上订单取消的审批场景,本申请实施例提供的事件管理系统100可以有订单取消审批的事件订阅流程以及订单取消审批的事件发布流程。
对于订单取消审批场景,事先会约定一订阅主题,例如,在本案例中,可以约定订阅主题为“ORDER_CANCEL_APP_TOPIC”。为了便于说明,在本申请实施例中,提供三台机器订阅这一订阅主题,因此,这三台机器可以构成一订阅分组(orderCancelGroup)。进一步的,对于该三台订阅同一订阅主题的机器,可以按照实际需求进一步分为至少两个订阅分组。
在完成事先的订阅主题约定以及对订阅分组的设置后,即可进入以下事件订阅流程:
对于订单管理部分中任一机器上的事件订阅模块11,通过事件处理器注册器112注册事件处理器111(例如,在此实施例中,注册的事件处理器111可以命名为“OrderCancelAppHandler”),获取订阅信息块中的订阅主题,构建订阅主题与至少一个事件处理器111的映射关系,在本申请提供的订单取消审批场景中,订阅主题与事件处理器111的映射关系如图10所示;
其中,事件处理器注册器112注册事件处理器111时,事件处理器111会生成与订阅主题对应的订阅信息块,在订单取消审批这一场景中,订阅信息块如图11所示。
订阅管理模块12中,订阅管理处理器121接收所有事件订阅模块11所发送的订阅信息块,构建订阅主题-信息块映射表,记录该映射记录的映射变化类型为新增。订阅主题-信息块映射表如图12所示。订阅分发处理器122将新增的订阅主题与订阅信息块的映射关系以及对应的映射关系变化类型转发至事件发布模块13。
在审批部分中,各个机器上的事件发布模块13接收映射关系变化类型以及新增的订阅主题与订阅信息块的映射关系,根据订阅主题,在订阅主题-分组映射表中增加一条订阅主题与订阅分组的映射记录,订阅主题与订阅分组的映射关系如图13所示。并且,在订阅分组-信息块映射表中增加一条订阅分组与订阅信息块的映射记录,以完成事件订阅流程。例如,本申请实施例提供的订阅管理部分中,三台机器对同一订阅主题进行订阅,则订阅分组-信息块映射表变化如图14所示。
对于移除已订阅事件,例如,机器3移除订阅事件,则在订阅分组-信息块映射表中移除对应的订阅分组与订阅信息块的映射关系,订阅分组-信息块映射表变化如图15所示。并且,若移除对应的订阅分组与订阅信息块的映射关系后,订阅分组-信息块映射表的内容为空,则将对应的订阅主题-分组映射表删除。
对于事件发布流程,具体可以进行如下步骤:
事件发布模块13发布主题为ORDER_CANCEL_APP_TOPIC的事件,所发布事件的事件信息包括:订阅主题以及业务数据。其中,业务数据可以包括订单ID,审批结果(如同意、驳回、取消等)。
事件发布模块13根据ORDER_CANCEL_APP_TOPIC这一订阅主题,基于订阅主题-分组映射表,可以找到orderCancelGroup这一订阅分组,并根据订阅分组-信息块映射表,找到一组订阅信息块,选择其中一个订阅信息块,按照该订阅信息块,将订阅主题以及业务数据发送至对应的事件订阅模块11中(如选择机器1对应的订阅信息块,则将订阅主题以及业务数据发送至机器1的事件订阅模块11中),接收到订阅主题及业务数据的事件订阅模块11对该事件进行处理。
综上,本申请提供一种事件管理系统100及方法,通过设计订阅信息块,生成订阅主题与订阅信息块的映射关系,监听订阅主题与订阅信息块的映射关系的变化,创建或移除订阅主题与订阅分组的映射关系,并创建或移除订阅分组与订阅信息块的映射关系,从而可以简单的实现订阅事件的创建或移除。基于上述方法,本申请还提供一种事件管理系统100,可以支持订阅事件的动态创建和删除,使得事件的订阅和发布更加灵活。
以上所揭露的仅为本发明的较佳实施例而已,然其并非用以限定本发明之权利范围,本领域普通技术人员可以理解:在不脱离本发明及所附的权利要求的精神和范围内,改变、修饰、替代、组合、简化,均应为等效的置换方式,仍属于发明所涵盖的范围。
Claims (10)
1.一种事件管理系统,其特征在于,所述事件管理系统包括:
多个事件订阅模块,所述事件订阅模块用于接收事件订阅者的订阅主题,生成所述订阅主题所对应的订阅信息块,其中,所述订阅信息块至少包括订阅主题、订阅分组和事件订阅者身份信息;
订阅管理模块,用于接收每一个事件订阅模块所发送的每一个订阅信息块,构建具有同一订阅主题的各个订阅信息块与该订阅主题的映射关系,以得到多组订阅主题与对应的具有同一订阅主题的各个订阅信息块的订阅主题-信息块映射表;
多个事件发布模块,用于根据所述订阅主题-信息块映射表,构建得到多组订阅主题与具有同一订阅主题的多个订阅分组的订阅主题-分组映射表,以及得到多组订阅分组与具有同一订阅分组的多个订阅信息块的订阅分组-信息块映射表;
所述事件发布模块,还用于接收事件发布者所发布的事件信息,所述事件信息包括订阅主题和业务数据,根据所述事件信息中的订阅主题,在所述订阅主题-分组映射表以及订阅分组-信息块映射表中,查询得到每个订阅分组所对应的多个订阅信息块,在每个订阅分组所对应的多个订阅信息块中任选其中的一个订阅信息块,根据所选择的订阅信息块中的事件订阅者身份信息,将所述事件信息发送至所述事件订阅者身份信息所对应的事件订阅者,以使所述事件订阅者处理所述业务数据。
2.根据权利要求1所述的事件管理系统,其特征在于,所述事件订阅模块包括:
多个事件处理器,所述事件处理器用于根据接收的事件订阅者的订阅主题,生成所述订阅主题所对应的订阅信息块;
事件处理器注册器,用于注册所述事件处理器,获取所述订阅信息块中的订阅主题,构建所述订阅主题与至少一个事件处理器的映射关系;
事件处理器路由缓存,用于缓存所述订阅主题与至少一个事件处理器的映射关系;
事件订阅处理器,用于将所述订阅信息块发送至所述订阅管理模块。
3.根据权利要求2所述的事件管理系统,其特征在于,所述订阅管理模块包括:
订阅管理处理器,用于接收所述事件订阅模块所发送的订阅信息块,获取所述订阅信息块中的订阅主题,在所述订阅主题-信息块映射表中查询是否有所述订阅主题与订阅信息块的映射关系,若没有,则在所述订阅主题-信息块映射表中增加一条所述订阅主题与所述订阅信息块的映射记录,并记录该映射记录的映射变化类型为新增,以得到具有同一订阅主题的各个订阅信息块与该订阅主题的映射关系;
订阅分发处理器,用于将新增的订阅主题与订阅信息块的映射关系以及对应的映射变化类型转发至所述事件发布模块。
4.根据权利要求3所述的事件管理系统,其特征在于:所述事件发布模块包括:
订阅监听处理器,用于接收新增的订阅主题与订阅信息块的映射关系及对应的映射变化类型;
路由缓存,用于存储所述订阅主题-分组映射表和所述订阅分组-信息块映射表;
事件路由管理器,用于若所述映射变化类型为新增,根据所述订阅主题,在所述订阅主题-分组映射表中增加一条订阅主题与订阅分组的映射记录,并根据所述订阅信息块中的订阅分组,在所述订阅分组-信息块映射表中增加一条订阅分组与订阅信息块的映射记录,以得到更新后的订阅主题-分组映射表和订阅分组-信息块映射表;
所述路由缓存,还用于存储所述更新后的订阅主题-分组映射表和订阅分组-信息块映射表。
5.根据权利要求4所述的事件管理系统,其特征在于,
所述订阅管理处理器,定期向所述事件订阅模块发送心跳请求信息,若在预设的时间阈值内,所述订阅管理处理器没有接收到心跳响应信息,则在所述订阅主题-信息块映射表中删除无响应的订阅信息块的映射记录,记录该映射记录的映射变化类型为删除;
所述订阅分发处理器,将订阅主题与无响应的订阅信息块映射记录以及对应的映射变化类型发送至所述事件发布模块。
6.根据权利要求5所述的事件管理系统,其特征在于,
所述订阅监听处理器,接收所述订阅主题与无响应的订阅信息块的映射记录以及对应的映射变化类型;
事件路由管理器,若所述映射变化类型为删除,根据所述订阅主题和无响应的订阅信息块,在所述订阅主题-分组映射表中和订阅分组-信息块映射表中删除对应的映射记录,以得到更新后的订阅分组-信息块映射表;
事件路由管理器在删除订阅分组-信息块映射表中对应的映射记录后,还会检测该订阅分组-信息块映射表是否为空,若删除映射记录后该订阅分组-信息块映射表为空,则事件路由管理器在订阅主题-分组映射表中删除对应的订阅主题与订阅分组的映射记录,以得到更新后的订阅主题-分组映射表;
所述路由缓存,还用于存储所述更新后的订阅主题-分组映射表和订阅分组-信息块映射表。
7.根据权利要求4所述的事件管理系统,其特征在于,所述事件发布模块还包括:
事件发布处理器,用于接收事件发布者所发布的事件信息,根据所述事件信息中的订阅主题,在所述订阅主题-分组映射表中查询到所述订阅主题所对应的多个订阅分组,并根据订阅分组-信息块映射表,查询到每个订阅分组所对应的多个订阅信息块,在每个订阅分组所对应的多个订阅信息块中任选其中的一个订阅信息块,根据所选择的订阅信息块中的事件订阅者身份信息,将所述事件信息发送至对应的事件订阅模块。
8.根据权利要求7所述的事件管理系统,其特征在于,所述事件订阅模块包括:
事件接受处理器,与所述事件发布处理器连接,接收所述事件信息,根据所述事件信息中的订阅主题在所述事件处理器路由缓存中查询对应的各个事件处理器,并将所述事件信息发送至每一个事情处理器;
所述事件处理器,获取所述事件信息中的订阅主题,根据所述订阅主题所对应的订阅信息块,获取所述订阅信息块中的事件订阅者身份信息,根据所述事件订阅者身份信息中的IP地址和端口号,将所述事件信息发送对应的事件订阅者,以使所述事件订阅者处理所述事件信息中的业务数据,其中,所述事件订阅者身份信息至少包括IP地址和端口号。
9.根据权利要求8所述的事件管理系统,其特征在于,具有同一个订阅主题的多个事件订阅者构成一个订阅分组。
10.一种事件管理方法,其特征在于,所述方法包括:
接收事件订阅者的订阅主题,生成所述订阅主题所对应的订阅信息块,其中,所述订阅信息块至少包括订阅主题、订阅分组和事件订阅者身份信息;
接收每一个事件订阅模块所发送的每一个订阅信息块,构建具有同一订阅主题的各个订阅信息块与该订阅主题的映射关系,以得到多组订阅主题与对应的具有同一订阅主题的各个订阅信息块的订阅主题-信息块映射表;
根据所述订阅主题-信息块映射表,构建得到多组订阅主题与具有同一订阅主题的多个订阅分组的订阅主题-分组映射表,以及得到多组订阅分组与具有同一订阅分组的多个订阅信息块的订阅分组-信息块映射表;
接收事件发布者所发布的事件信息,所述事件信息包括订阅主题和业务数据,根据所述事件信息中的订阅主题,在所述订阅主题-分组映射表以及订阅分组-信息块映射表中,查询到每个订阅分组所对应的多个订阅信息块;
在每个订阅分组所对应的多个订阅信息块中任选其中的一个订阅信息块,根据所选择的订阅信息块中的事件订阅者身份信息,将所述事件信息发送至所述事件订阅者身份信息所对应的事件订阅者,以使所述事件订阅者处理所述业务数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211503211.8A CN115550439B (zh) | 2022-11-29 | 2022-11-29 | 事件管理系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211503211.8A CN115550439B (zh) | 2022-11-29 | 2022-11-29 | 事件管理系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115550439A CN115550439A (zh) | 2022-12-30 |
CN115550439B true CN115550439B (zh) | 2023-04-11 |
Family
ID=84722507
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211503211.8A Active CN115550439B (zh) | 2022-11-29 | 2022-11-29 | 事件管理系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115550439B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0521355D0 (en) * | 2005-10-19 | 2005-11-30 | Ibm | Publish/subscribe system and method for managing subscriptions |
CN101251860A (zh) * | 2008-03-10 | 2008-08-27 | 北京航空航天大学 | 一种Web信息发布管理系统与方法 |
US9912619B1 (en) * | 2014-06-03 | 2018-03-06 | Juniper Networks, Inc. | Publish-subscribe based exchange for network services |
CN113094614A (zh) * | 2019-12-23 | 2021-07-09 | 中国移动通信集团湖南有限公司 | 一种数据分发方法、系统及装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7406537B2 (en) * | 2002-11-26 | 2008-07-29 | Progress Software Corporation | Dynamic subscription and message routing on a topic between publishing nodes and subscribing nodes |
CN109286648B (zh) * | 2017-07-21 | 2020-11-06 | 比亚迪股份有限公司 | 数据推送方法、装置、系统和终端设备 |
CN112039942A (zh) * | 2017-08-29 | 2020-12-04 | 华为技术有限公司 | 一种订阅发布方法及服务器 |
CN109547529B (zh) * | 2018-10-16 | 2021-08-06 | 中国船舶重工集团公司第七一九研究所 | 一种基于dds的分布式工业数据分发方法 |
CN109862063A (zh) * | 2018-11-12 | 2019-06-07 | 平安科技(深圳)有限公司 | 基于mqtt的发布订阅匹配方法、装置及存储介质 |
CN110113381B (zh) * | 2019-04-09 | 2023-04-07 | 深圳前海微众银行股份有限公司 | 一种区块链中订阅主题的方法及装置 |
US11888952B2 (en) * | 2019-12-10 | 2024-01-30 | VMware LLC | Topic-based data routing in a publish-subscribe messaging environment |
-
2022
- 2022-11-29 CN CN202211503211.8A patent/CN115550439B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0521355D0 (en) * | 2005-10-19 | 2005-11-30 | Ibm | Publish/subscribe system and method for managing subscriptions |
CN101251860A (zh) * | 2008-03-10 | 2008-08-27 | 北京航空航天大学 | 一种Web信息发布管理系统与方法 |
US9912619B1 (en) * | 2014-06-03 | 2018-03-06 | Juniper Networks, Inc. | Publish-subscribe based exchange for network services |
CN113094614A (zh) * | 2019-12-23 | 2021-07-09 | 中国移动通信集团湖南有限公司 | 一种数据分发方法、系统及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN115550439A (zh) | 2022-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2432613C2 (ru) | Управление усовершенствованными совокупностями присутствия | |
EP2005709B1 (en) | Service registry and relevant system and method | |
US8195742B2 (en) | Distributed client services based on execution of service attributes and data attributes by multiple nodes in resource groups | |
US6510429B1 (en) | Message broker apparatus, method and computer program product | |
RU2450341C2 (ru) | Управление богатыми коллекциями присутствия | |
CN101771723A (zh) | 数据同步方法 | |
US20030135556A1 (en) | Selection of communication strategies for message brokers or publish/subscribe communications | |
CN112788074B (zh) | 数据发送方法、处理方法、接收方法及其设备、存储介质 | |
CN101163117B (zh) | 一种群组管理方法、群组资源共享方法及即时通讯装置 | |
US7864703B2 (en) | Packet communication device | |
CN113055461B (zh) | 一种基于ZooKeeper的无人集群分布式协同指挥控制方法 | |
CN101789963A (zh) | 数据同步系统 | |
JP2740105B2 (ja) | 分散データベース制御方法 | |
CN115550439B (zh) | 事件管理系统及方法 | |
JPH11232201A (ja) | 通信資源制御装置 | |
CN105427149A (zh) | 一种基于soa扩展框架的跨境电子商务bpo服务方法及装置 | |
JP5610397B2 (ja) | 資源予約装置及び方法及びプログラム | |
CN111371621A (zh) | 基于混合云的数据交换方法、装置及计算机可读介质 | |
CN116542623A (zh) | 业务制约关系管控方法及业务关系管理引擎 | |
CN114205233B (zh) | 一种面向数据管控的智能合约自适应配置与执行的系统 | |
JP2012150569A (ja) | 資源予約装置及び方法及びプログラム | |
Zhai et al. | Research on Real-time Publish/Subscribe System supported by Data-Integration. | |
CN103856359A (zh) | 获取信息的方法和系统 | |
CN116915786B (zh) | 一种多服务器协同的车牌识别及车辆管理系统 | |
CN110071945B (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 |