一种基于领域驱动的事件处理方法及设备与流程

    专利2022-07-08  78


    本申请涉及计算机领域,尤其涉及一种基于领域驱动的事件处理方法及设备。



    背景技术:

    在领域驱动模式的代码开发过程中,搭建领域模型和划分业务边界是两个重要的步骤,其中针对清晰地划分业务边界的方案一般是通过事件模式对多个领域之间存在依赖关系的模型进行隔离、解耦。目前事件模式的实践方案主要有以下三种,一、基于订阅发布模式的本地事件同步处理;二、基于队列线程池的本地事件异步处理;三、基于mq中间件的远程事件异步处理,但由于现有的实践方案中的每种技术方案都需要额外的开发成本,复用成本较高,且针对事件的处理没有统一的接口,不同事件处理模式的接入、切换成本高。



    技术实现要素:

    本申请的一个目的是提供一种基于领域驱动的事件处理方法及设备,实现对现有的事件处理模式的整合,降低不同事件处理模式的使用超成本,提高代码的复用性。

    根据本申请的一个方面,提供了一种基于领域驱动的事件处理方法,其中,所述方法包括:

    在业务系统中引入事件处理器组件,所述事件处理器组件为不同的领域模型注册对应的事件处理中心及所述事件处理中心的事件处理基本信息;

    所述业务系统启动时,所述事件处理器组件为所述事件处理中心关联不同事件类型的消费者,并分配线程池及消息队列mq处理资源;

    发布方的领域模型发布目标事件类型的发布事件及其事件消息至与所述发布方的领域模型对应的目标事件处理中心;

    所述目标事件处理中心根据所述目标事件类型和所述事件处理基本信息,将所述事件消息发送至对应的目标消费者,以使所述目标消费者基于所述事件消息处理所述发布事件。

    进一步地,上述方法中,所述事件处理中心的事件处理基本信息包括:事件处理中心的名称、事件类型及与所述事件类型对应的事件处理方式。

    进一步地,上述方法中,当所述业务系统涉及订阅方的领域模型的事件时,在所述发布方的领域模型对应的事件处理中心注册对应的消费者,并预置所述消费者接收事件的处理方式和消费的事件类型。

    进一步地,上述方法中,所述发布方的领域模型发布目标事件类型的发布事件及其事件消息至与所述发布方的领域模型对应的目标事件处理中心,包括:

    发布方的领域模型获取发布的目标事件类型的发布事件的上下文相关信息;

    将所述发布事件的上下文相关信息封装到事件消息对象中,得到所述发布事件的事件消息;

    将所述发布事件的事件消息发送至与所述发布方的领域模型对应的目标事件处理中心。

    进一步地,上述方法中,所述目标事件处理中心根据所述目标事件类型和所述事件处理基本信息,将所述事件消息发送至对应的目标消费者,以使所述目标消费者基于所述事件消息处理所述发布事件,包括:

    所述目标事件处理中心根据所述目标事件处理中心的事件处理基本信息,确定与所述目标事件类型对应的事件处理方式;

    所述目标事件处理中心通过与所述目标事件类型对应的事件处理方式,将所述事件消息发送至对应的目标消费者,以使所述目标消费者基于所述事件消息处理所述发布事件。

    进一步地,上述方法中,所述事件处理中心的所述事件处理基本信息中的所述事件类型包括本地同步类型事件、本地异步类型事件及远程异步类型事件。

    进一步地,上述方法中,若所述目标事件类型为本地同步类型事件,其中,所述目标事件处理中心通过与所述目标事件类型对应的事件处理方式,将所述事件消息发送至对应的目标消费者,包括:

    所述目标事件处理中心直接将所述事件消息发送至对应的目标消费者。

    进一步地,上述方法中,若所述目标事件类型为本地异步类型事件,其中,所述目标事件处理中心通过与所述目标事件类型对应的事件处理方式,将所述事件消息发送至对应的目标消费者,包括:

    通过所述目标事件处理中心分配的线程池,将所述事件消息异步发送至对应的目标消费者。

    进一步地,上述方法中,所述mq处理资源包括mq发送器、mq中间件及mq消费器,其中,若所述目标事件类型为远程异步类型事件,其中,所述目标事件处理中心通过与所述目标事件类型对应的事件处理方式,将所述事件消息发送至对应的目标消费者,包括:

    通过所述目标事件处理中心分配的目标mq发送器,将所述事件消息发送到所述目标事件处理中心分配的目标mq中间件,所述目标mq中间件将所述事件消息转发至所述目标事件处理中心分配的目标mq消费器,所述目标mq消费器将所述事件消息发送至对应的目标消费者。

    根据本申请的另一方面,还提供了一种非易失性存储介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行时,使所述处理器实现如上述基于领域驱动的事件处理方法。

    根据本申请的另一方面,还提供了一种基于领域驱动的事件处理的设备,其中,该设备包括:

    一个或多个处理器;

    计算机可读介质,用于存储一个或多个计算机可读指令,

    当所述一个或多个计算机可读指令被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述基于领域驱动的事件处理方法。

    与现有技术相比,本申请通过在业务系统中引入事件处理器组件,所述事件处理器组件为不同的领域模型注册对应的事件处理中心及所述事件处理中心的事件处理基本信息;所述业务系统启动时,所述事件处理器组件为所述事件处理中心关联不同事件类型的消费者,并分配线程池及消息队列mq处理资源;发布方的领域模型发布目标事件类型的发布事件及其事件消息至与所述发布方的领域模型对应的目标事件处理中心;所述目标事件处理中心根据所述目标事件类型和所述事件处理基本信息,将所述事件消息发送至对应的目标消费者,以使所述目标消费者基于所述事件消息处理所述发布事件,实现了在业务系统发送到事件处理中心的发布事件,会按照与该发布事件的目标事件类型对应的事件处理方式发送到订阅该目标事件类型的消费者处,以便该消费者对该发布事件进行处理,使得通过事件处理器组件以向业务系统提供多种事件处理方式,统一接入使用的支持,通过事件处理中心的形式封装多种事件处理方式,并提供标准化的事件发送处理接口,达到对现有的事件处理模式的整合,降低不同事件处理模式的使用超成本,提高代码的复用性。

    附图说明

    通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

    图1示出根据本申请一个方面的一种基于领域驱动的事件处理方法的流程示意图;

    图2示出根据本申请一个方面的一种基于领域驱动的事件处理方法的一实际应用场景的示意图。

    附图中相同或相似的附图标记代表相同或相似的部件。

    具体实施方式

    下面结合附图对本申请作进一步详细描述。

    在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

    内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

    计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

    如图1所示,本申请一个方面提供的一种基于领域驱动的事件处理方法的流程示意图,所述方法包括:步骤s11、步骤s12、步骤s13及步骤s14,其中,具体包括如下步骤:

    步骤s11,在业务系统中引入事件处理器组件,所述事件处理器组件为不同的领域模型注册对应的事件处理中心及所述事件处理中心的事件处理基本信息;在此,所述事件处理中心的事件处理基本信息包括:事件处理中心的名称、事件类型及与所述事件类型对应的事件处理方式。例如,在步骤s11中,在业务系统中引入事件处理器组件,所述事件处理器组件为需要发布事件通知的不同的领域模型注册对应的事件处理中心,即不同的领模型对应各自的事件处理中心,在注册不同的领域模型对应的事件处理中心时,需要确定所述事件处理中心的事件处理基本信息,比如,事件处理中心的名称、时间处理中心支持的事件处理方式、可以处理的事件类型及、与不同的事件类型对应的不同的事件处理方式,即不同的事件类型对应的事件处理方式不同及不同的事件处理方式的相关配置信息等。

    在所述步骤s11中,当所述业务系统涉及订阅方的领域模型的事件时,需要在所述发布方的领域模型对应的事件处理中心注册对应的消费者,并预置所述消费者接收事件的处理方式和消费的事件类型,以便对订阅的事件类型对应的发布事件的处理。

    步骤s12,所述业务系统启动时,所述事件处理器组件为所述事件处理中心关联不同事件类型的消费者,并分配线程池及消息队列mq(messagequeue,mq)处理资源,以便后续在确定发布事件所属的事件处理中心时,可以直接调用分配的线程池及mq处理资源等,向发布事件所属的事件处理中心关联的事件类型对应的消费者发送该发布事件及其事件消息等,以提高发布事件的发布效率。在此,所述mq处理资源包括mq发送器、mq中间件及mq消费器,便于后续对发布事件的事件消息进行转发。

    步骤s13,发布方的领域模型发布目标事件类型的发布事件及其事件消息至与所述发布方的领域模型对应的目标事件处理中心;

    步骤s14,所述目标事件处理中心根据所述目标事件类型和所述事件处理基本信息,将所述事件消息发送至对应的目标消费者,以使所述目标消费者基于所述事件消息处理所述发布事件,以便该消费者对该发布事件进行处理。

    通过上述步骤s11至步骤s14,通过事件处理器组件以向业务系统提供多种事件处理方式,统一接入使用的支持,通过事件处理中心的形式封装多种事件处理方式,并提供标准化的事件发送处理接口,达到对现有的事件处理模式的整合,降低不同事件处理模式的使用超成本,提高代码的复用性。

    进一步地,所述步骤s13发布方的领域模型发布目标事件类型的发布事件及其事件消息至与所述发布方的领域模型对应的目标事件处理中心,具体包括:

    发布方的领域模型获取发布的目标事件类型的发布事件的上下文相关信息;

    将所述发布事件的上下文相关信息封装到事件消息对象中,得到所述发布事件的事件消息;

    将所述发布事件的事件消息发送至与所述发布方的领域模型对应的目标事件处理中心。

    例如,业务系统中的领域模型需要发布事件通知时,所述发布方的领域模型先获取需要发布的目标事件类型的发布事件的上下文相关信息;之后,将所述发布事件的上下文相关信息封装到事件消息对象中,得到所述发布事件的事件消息;最后,将所述发布事件的事件消息发送至与所述发布方的领域模型对应的目标事件处理中心,以便通过所述与所述发布方的领域模型对应的目标事件处理中心来发送所述发布事件的事件消息,实现对发布方的领域模型需要发布的发布事件的事件消息的封装,并发送至与所述发布方的领域模型对应的目标事件处理中心进行所述发布事件及其事件消息的发送处理。

    进一步地,所述步骤s14目标事件处理中心根据所述目标事件类型和所述事件处理基本信息,将所述事件消息发送至对应的目标消费者,以使所述目标消费者基于所述事件消息处理所述发布事件,具体包括:

    所述目标事件处理中心根据所述目标事件处理中心的事件处理基本信息,确定与所述目标事件类型对应的事件处理方式;在此,所述事件处理中心的事件处理基本信息包括:事件处理中心的名称、事件类型及与所述事件类型对应的事件处理方式。

    所述目标事件处理中心通过与所述目标事件类型对应的事件处理方式,将所述事件消息发送至对应的目标消费者,以使所述目标消费者基于所述事件消息处理所述发布事件。

    例如,在事件处理器组件中注册的事件处理中心可以将不同事件类型对应的事件通过与不同事件类型对应的事件处理方式的处理器分发到消费者处,故,在实际发布事件的应用场景中,当业务系统中的领域模型需要发布事件通知时,所述发布方的领域模型将需要发布的发布事件的事件事实发送至与所述发布方的领域模型对应的目标事件处理中心,以便通过与所述发布方的领域模型对应的目标事件处理中心发送所述发布事件的事件消息;所述目标事件处理中心根据该目标事件处理中心注册的事件处理基本信息,确定与所述目标事件类型对应的事件处理方式,然后通过与所述目标事件类型对应的事件处理方式,将所述事件消息发送至对应的目标消费者,以使所述目标消费者基于所述事件消息处理所述发布事件,实现了通过目标事件处理中心采用对应的事件处理方式对该发布事件的事件消息进行发发送。

    进一步地,所述事件处理中心的所述事件处理基本信息中的所述事件类型包括本地同步类型事件、本地异步类型事件及远程异步类型事件。

    本实施例中,若所述目标事件类型为本地同步类型事件,其中,所述目标事件处理中心通过与所述目标事件类型对应的事件处理方式,将所述事件消息发送至对应的目标消费者时,所述目标事件处理中心直接将所述本地同步类型事件及其事件消息发送至对应的目标消费者,实现对本地同步类型事件的直接发送处理。

    本实施例中,若所述目标事件类型为本地异步类型事件,其中,所述目标事件处理中心通过与所述目标事件类型对应的事件处理方式,将所述事件消息发送至对应的目标消费者时,通过所述目标事件处理中心分配的线程池,将所述本地异步类型事件及其事件消息异步发送至对应的目标消费者,使得通过目标事件处理中心分配的线程池实现对本地异步类型事件的发送处理。

    本实施例中,所述mq处理资源包括mq发送器、mq中间件及mq消费器,其中,若所述目标事件类型为远程异步类型事件,其中,所述目标事件处理中心通过与所述目标事件类型对应的事件处理方式,将所述事件消息发送至对应的目标消费者时,先通过所述目标事件处理中心分配的目标mq发送器,将所述远程异步类型事件及其事件消息发送到所述目标事件处理中心分配的目标mq中间件,所述目标mq中间件将所述远程异步类型事件及其事件消息转发至所述目标事件处理中心分配的目标mq消费器,所述目标mq消费器将所述远程异步类型事件及其事件消息发送至对应的目标消费者,使得通过目标事件处理中心分配的mq处理资源对远程异步类型事件的发送处理。

    如图2所示,为本申请一个方面提供的一种基于领域驱动的事件处理方法的实际应用场景示意图,其中,领域模型a为发布方的领域模型,领域模型b和领域模型c为订阅方的领域模型,本申请的实施例中,引入事件处理器,该事件处理器通过组件的形式向业务系统提供多种事件处理方式统一接入使用的支持。通过事件处理器组件中注册的事件处理中心对象的形式封装多种事件处理方式,比如本地同步事件、本地异步事件及远程异步事件各自对应的事件处理方式,并提供标准化的事件发送处理接口,即事件处理中心,业务系统发送到事件处理中心的事件,会依次按照消费者订阅的事件类型对应的事件处理方式发送到订阅该事件类型的消费者进行处理,具体包括如下步骤:在实际应用场景中,业务系统中引入事件处理器组件,所述事件处理器组件为需要发布事件通知的不同的领域模型注册对应的事件处理中心,即不同的领模型对应各自的事件处理中心,在注册不同的领域模型对应的事件处理中心时,需要确定所述事件处理中心的事件处理基本信息,比如,事件处理中心的名称、时间处理中心支持的事件处理方式、可以处理的事件类型及、与不同的事件类型对应的不同的事件处理方式,即不同的事件类型对应的事件处理方式不同及不同的事件处理方式的相关配置信息等。

    当所述业务系统涉及订阅方的领域模型的事件时,需要在所述发布方的领域模型对应的事件处理中心注册对应的消费者,并预置所述消费者接收事件的处理方式和消费的事件类型,以便对订阅的事件类型对应的发布事件的处理。

    所述业务系统启动时,所述事件处理器组件为所述事件处理中心关联不同事件类型的消费者,并分配线程池及消息队列mq(messagequeue,mq)处理资源,以便后续在确定发布事件所属的事件处理中心时,可以直接调用分配的线程池及mq处理资源等,向发布事件所属的事件处理中心关联的事件类型对应的消费者发送该发布事件及其事件消息等,以提高发布事件的发布效率。其中,所述mq处理资源包括mq发送器、mq中间件及mq消费器,便于后续对发布事件的事件消息进行转发。在此,所述消费者对应为图2中的订阅方的领域模型,比如图2中的领域模型b和领域模型c。

    业务系统中的发布方的领域模型a发布事件通知时,首先将发布事件的上下文相关信息封装到事件消息对象中,得到发布事件的事件消息,然后通过与所述发布事件的目标事件类型对应的目标事件处理中心发送所述发布事件及其事件消息。

    目标事件处理中心会将不同类型的发布事件通过对应的不同事件处理方式的处理器分发到消费者,该消费者包括领域模型b和/或领域模型c,如图2所示。若所述发布事件为本地同步类型事件,则所述目标事件处理中心直接将所述本地同步类型事件及其事件消息发送到消费者;若所述目标事件类型为本地异步类型事件,则通过所述目标事件处理中心分配的线程池,将所述本地异步类型事件及其事件消息异步发送至对应的目标消费者。若所述发布事件为远程异步类型事件,则先通过所述目标事件处理中心分配的目标mq发送器,将所述远程异步类型事件及其事件消息发送到所述目标事件处理中心分配的目标mq中间件,所述目标mq中间件将所述远程异步类型事件及其事件消息转发至所述目标事件处理中心分配的目标mq消费器,所述目标mq消费器将所述远程异步类型事件及其事件消息发送至对应的目标消费者,如图2所示,将不同事件类型的事件发送至不同的领域模型b和领域模型c中。

    所述消费者接收到事件消息后自动处理该事件消息对应的发布事件,订阅方的领域模型在处理发布事件过程中,事件处理器组件负责事件处理过程中的监控及异常处理等,比如处理监听、日志打印机异常报警灯,最终通过统一的接入方式,即事件处理器组件实现不同领域模型间不同处理方式事件交互的隔离。

    通过本申请的上述实施例,不仅整合了现有的事件处理模式,降低不同事件处理模式的使用成本,提高代码的复用性;还统一了事件处理接入的方式,实现事件处理的标准化以及不同事件处理模式的快速切换;由事件处理器组件统一管理事件处理的过程,实现统一监控、异常处理;提升各种事件处理操作的性能。

    根据本申请的另一方面,还提供了一种非易失性存储介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行时,使所述处理器实现如上述基于领域驱动的事件处理方法。

    根据本申请的另一方面,还提供了一种基于领域驱动的事件处理的设备,其中,该设备包括:

    一个或多个处理器;

    计算机可读介质,用于存储一个或多个计算机可读指令,

    当所述一个或多个计算机可读指令被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述基于领域驱动的事件处理方法。

    在此,所述基于领域驱动的事件处理的设备中的各实施例的详细内容,具体可参见上述基于领域驱动的事件处理方法的实施例的对应部分,在此,不再赘述。

    综上所述,本申请通过在业务系统中引入事件处理器组件,所述事件处理器组件为不同的领域模型注册对应的事件处理中心及所述事件处理中心的事件处理基本信息;所述业务系统启动时,所述事件处理器组件为所述事件处理中心关联不同事件类型的消费者,并分配线程池及消息队列mq处理资源;发布方的领域模型发布目标事件类型的发布事件及其事件消息至与所述发布方的领域模型对应的目标事件处理中心;所述目标事件处理中心根据所述目标事件类型和所述事件处理基本信息,将所述事件消息发送至对应的目标消费者,以使所述目标消费者基于所述事件消息处理所述发布事件,实现了在业务系统发送到事件处理中心的发布事件,会按照与该发布事件的目标事件类型对应的事件处理方式发送到订阅该目标事件类型的消费者处,以便该消费者对该发布事件进行处理,使得通过事件处理器组件以向业务系统提供多种事件处理方式,统一接入使用的支持,通过事件处理中心的形式封装多种事件处理方式,并提供标准化的事件发送处理接口,达到对现有的事件处理模式的整合,降低不同事件处理模式的使用超成本,提高代码的复用性。

    需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(asic)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,ram存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。

    另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。

    对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。


    技术特征:

    1.一种基于领域驱动的事件处理方法,其中,所述方法包括:

    在业务系统中引入事件处理器组件,所述事件处理器组件为不同的领域模型注册对应的事件处理中心及所述事件处理中心的事件处理基本信息;

    所述业务系统启动时,所述事件处理器组件为所述事件处理中心关联不同事件类型的消费者,并分配线程池及消息队列mq处理资源;

    发布方的领域模型发布目标事件类型的发布事件及其事件消息至与所述发布方的领域模型对应的目标事件处理中心;

    所述目标事件处理中心根据所述目标事件类型和所述事件处理基本信息,将所述事件消息发送至对应的目标消费者,以使所述目标消费者基于所述事件消息处理所述发布事件。

    2.根据权利要求1所述的方法,其中,所述事件处理中心的事件处理基本信息包括:事件处理中心的名称、事件类型及与所述事件类型对应的事件处理方式。

    3.根据权利要求2所述的方法,其中,当所述业务系统涉及订阅方的领域模型的事件时,在所述发布方的领域模型对应的事件处理中心注册对应的消费者,并预置所述消费者接收事件的处理方式和消费的事件类型。

    4.根据权利要求3所述的方法,其中,所述发布方的领域模型发布目标事件类型的发布事件及其事件消息至与所述发布方的领域模型对应的目标事件处理中心,包括:

    发布方的领域模型获取发布的目标事件类型的发布事件的上下文相关信息;

    将所述发布事件的上下文相关信息封装到事件消息对象中,得到所述发布事件的事件消息;

    将所述发布事件的事件消息发送至与所述发布方的领域模型对应的目标事件处理中心。

    5.根据权利要求4所述的方法,其中,所述目标事件处理中心根据所述目标事件类型和所述事件处理基本信息,将所述事件消息发送至对应的目标消费者,以使所述目标消费者基于所述事件消息处理所述发布事件,包括:

    所述目标事件处理中心根据所述目标事件处理中心的事件处理基本信息,确定与所述目标事件类型对应的事件处理方式;

    所述目标事件处理中心通过与所述目标事件类型对应的事件处理方式,将所述事件消息发送至对应的目标消费者,以使所述目标消费者基于所述事件消息处理所述发布事件。

    6.根据权利要求5所述的方法,其中,所述事件处理中心的所述事件处理基本信息中的所述事件类型包括本地同步类型事件、本地异步类型事件及远程异步类型事件。

    7.根据权利要求6所述的方法,其中,若所述目标事件类型为本地同步类型事件,其中,所述目标事件处理中心通过与所述目标事件类型对应的事件处理方式,将所述事件消息发送至对应的目标消费者,包括:

    所述目标事件处理中心直接将所述事件消息发送至对应的目标消费者。

    8.根据权利要求6所述的方法,其中,若所述目标事件类型为本地异步类型事件,其中,所述目标事件处理中心通过与所述目标事件类型对应的事件处理方式,将所述事件消息发送至对应的目标消费者,包括:

    通过所述目标事件处理中心分配的线程池,将所述事件消息异步发送至对应的目标消费者。

    9.根据权利要求6所述的方法,其中,所述mq处理资源包括mq发送器、mq中间件及mq消费器,其中,若所述目标事件类型为远程异步类型事件,其中,所述目标事件处理中心通过与所述目标事件类型对应的事件处理方式,将所述事件消息发送至对应的目标消费者,包括:

    通过所述目标事件处理中心分配的目标mq发送器,将所述事件消息发送到所述目标事件处理中心分配的目标mq中间件,所述目标mq中间件将所述事件消息转发至所述目标事件处理中心分配的目标mq消费器,所述目标mq消费器将所述事件消息发送至对应的目标消费者。

    10.一种非易失性存储介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行时,使所述处理器实现如权利要求1至9中任一项所述的方法。

    11.一种基于领域驱动的事件处理的设备,其中,该设备包括:

    一个或多个处理器;

    计算机可读介质,用于存储一个或多个计算机可读指令,

    当所述一个或多个计算机可读指令被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1至9中任一项所述的方法。

    技术总结
    本申请的目的是提供一种基于领域驱动的事件处理方法及设备,本申请通过在业务系统中引入事件处理器组件,事件处理器组件为不同的领域模型注册对应的事件处理中心及事件处理中心的事件处理基本信息;业务系统启动时,事件处理器组件为事件处理中心关联不同事件类型的消费者,并分配线程池及消息队列MQ处理资源;发布方的领域模型发布目标事件类型的发布事件及其事件消息至与对应的目标事件处理中心;目标事件处理中心根据目标事件类型和事件处理基本信息将事件消息发送至对应的目标消费者处进行处理,使得通过事件处理器组件以向业务系统提供多种事件处理方式,降低不同事件处理模式的使用超成本,提高代码的复用性。

    技术研发人员:程伟
    受保护的技术使用者:上海悦易网络信息技术有限公司
    技术研发日:2020.11.26
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-23444.html

    最新回复(0)