一种服务内部或跨服务调用的事件总线框架方法及系统技术方案

技术编号:37292274 阅读:15 留言:0更新日期:2023-04-21 03:23
本发明专利技术提供服务内部或跨服务调用的事件总线框架方法,事件总线包括事件模型、订阅者和发布者,该方法包括:定义进程内事件模型接口;定义发布方法;定义配置中心;定义事件中心;定义订阅者接口约束;定义约束特性;其中,将发布者和订阅者的订阅关系和事件关系进行绑定;该方法还包括打包步骤,包括:将上述定义步骤的代码进行打包,得到打包文件;该方法还包括可以任选的分发步骤,包括将打包文件上传至分发中心。本发明专利技术还提供相应的系统服务内部或跨服务调用的事件总线框架方法。本发明专利技术提供了一种系统理解成本低、获取方式统一便捷、安全性高、实现简单、和/或可进行消息排队的事件总线框架方法及其系统。总线框架方法及其系统。总线框架方法及其系统。

【技术实现步骤摘要】
一种服务内部或跨服务调用的事件总线框架方法及系统


[0001]本专利技术属于软件
,尤其涉及一种服务内部或跨服务调用的事件总线框架方法及系统。

技术介绍

[0002]事件总线是一种单点发布,多点触发的事件流模型,它存在于现代软件设计的多种场景。是一种事件发布订阅结构,通过发布订阅的模式可以解耦不同的架构层级,同时解决业务之间的耦合。
[0003]事件总线存在三种必要元素:
[0004]1.定义事件(事件模型)
[0005]2.订阅事件(订阅者)
[0006]3.发布事件(发布者)
[0007]它的存在可以解耦业务逻辑,使得软件耦合度降低,基于事件通知形式处理相关业务。降低软件耦合度,提升复杂软件系统扩展性。
[0008]但是目前的事件总线模型的软件系统往往存在以下一个或多个问题:软件系统理解成本很高、获取方式不够统一便捷、安全性不够、实现较为繁琐、无法进行消息排队。
[0009]基于以上,本申请提供了解决以上技术问题的技术方案。

技术实现思路

[0010]本专利技术的第一目的是获得一种软件本专利技术的第二目的是获得一种软件系统理解成本低、获取方式统一便捷、安全性高、实现简单、和/或可进行消息排队的事件总线框架系统。
[0011]本专利技术的第三目的是获得一种采用软件系统理解成本低、获取方式统一便捷、安全性高、实现简单、和/或可进行消息排队的事件总线框架方法的电子设备。
[0012]本专利技术的第四目的是获得采用软件系统理解成本低、获取方式统一便捷、安全性高、实现简单、和/或可进行消息排队的事件总线框架方法的计算机可读存储介质。
[0013]本专利技术第一方面提供一种服务内部或跨服务调用的事件总线框架方法,所述事件总线包括事件模型、订阅者和发布者,所述事件总线框架方法包括如下定义步骤:
[0014]定义进程内事件模型接口;定义发布方法;定义配置中心;定义事件中心;定义订阅者接口约束;和定义约束特性;其中,上述定义中,将发布者和订阅者的订阅关系和事件关系进行绑定,
[0015]所述事件总线框架方法还包括打包步骤,包括:将上述定义步骤的代码进行打包,得到打包文件;
[0016]所述事件总线框架方法还包括可以任选的分发步骤,包括将所述打包文件上传至分发中心。
[0017]在本专利技术的一个具体实施方式中,定义进程内事件模型接口时,标识项目里面的

模型”以继承“事件模型接口”。
[0018]在本专利技术的一个具体实施方式中,所述定义发布方法包括定义进程内接口方法和定义跨进程发布订阅。
[0019]在本专利技术的一个具体实施方式中,所述定义进程内接口方法约束了发布时“只允许发布约束的事件模型”的事件。
[0020]在本专利技术的一个具体实施方式中,所述定义跨进程发布订阅重载了发布方法。
[0021]在本专利技术的一个具体实施方式中,实行全框架适用的统一化配置方案。
[0022]在本专利技术的一个具体实施方式中,事件中心可以包括对进程内事件模型进行定义,以及对跨进程事件模型进行定义。
[0023]在本专利技术的一个具体实施方式中,所述发布者和订阅者的订阅关系的绑定中,是利用时间模型的命名空间和类名在项目里唯一的特性。
[0024]更具体的,通过事件模型的【命名空间+模型的类型全称】绑定发布者和订阅者之间的关系。
[0025]在本专利技术的一个具体实施方式中,所述发布者和订阅者的事件关系的绑定中,跨实例或跨服务的通讯利用消息队列的通讯管道的特性。
[0026]更具体的,所述跨实例或跨服务的通讯利用消息队列的通讯管道的特性是,采用Kafka的Topic或者Redis的Channel。
[0027]在本专利技术的一个具体实施方式中,对跨进程事件模型进行定义时,将消息发送到消息中间件。
[0028]更具体的,例如,通过topic将消息发送到消息中间件。
[0029]在本专利技术的一个具体实施方式中,定义订阅者接口约束时,可以约束统一的调用。
[0030]更具体的,可以约束订阅者必须实现的方法。
[0031]在本专利技术的一个具体实施方式中,定义约束特性时,可以定义框架有统一的标记方式。
[0032]更具体的,可以标识订阅者消费的目标Topic,并且框架有统一的标记方式。
[0033]在本专利技术的一个具体实施方式中,所述定义配置中心中,采用C#语言的特性标签进行简化配置,或Java语言的@注解的形式简化配置。
[0034]在本专利技术的一个具体实施方式中,所述分发步骤中,采用Nuget或独立部署的Nexus平台分发给各个服务该项能力。
[0035]在本专利技术的一个具体实施方式中,还包括:将中间件技术依赖注入到项目中。
[0036]更优选的,所述注入方式包括通过.Net的DI注入方式或AutoFac的DI注入方式。
[0037]本专利技术的第二方面提供一种服务内部或跨服务调用的事件总线框架系统,所述事件总线包括事件模型、订阅者和发布者,所述事件总线框架系统包括如下定义模块:
[0038]进程内事件模型接口定义模块;发布方法定义模块;配置中心定义模块;事件中心定义模块;订阅者接口约束定义模块;约束特性定义模块;其中,上述定义模块中,设置为将发布者和订阅者的订阅关系和事件关系进行绑定,
[0039]所述事件总线框架系统还包括打包模块,设置为包括:将上述定义步骤的代码进行打包,得到打包文件;
[0040]所述事件总线框架方法还包括分发模块,设置为包括将所述打包文件上传至分发
中心。
[0041]在本专利技术的一个具体实施方式中,进程内事件模型接口定义模块中,设置为标识项目里面的“模型”以继承“事件模型接口”。
[0042]在本专利技术的一个具体实施方式中,所述发布定义模块设置为:包括定义进程内接口方法和定义跨进程发布订阅。
[0043]在本专利技术的一个具体实施方式中,设置为所述进程内接口方法约束了发布时“只允许发布约束的事件模型”的事件。
[0044]在本专利技术的一个具体实施方式中,所述跨进程发布订阅模块设置为:重载了发布方法。
[0045]在本专利技术的一个具体实施方式中,设置为实行全框架适用的统一化配置方案。
[0046]在本专利技术的一个具体实施方式中,事件中心定义模块设置为:可以包括对进程内事件模型进行定义,以及对跨进程事件模型进行定义。
[0047]在本专利技术的一个具体实施方式中,设置为:所述发布者和订阅者的订阅关系的绑定中,利用时间模型的命名空间和类名在项目里唯一的特性。
[0048]更具体的,设置为通过事件模型的【命名空间+模型的类型全称】绑定发布者和订阅者之间的关系。
[0049]在本专利技术的一个具体实施方式中,所述发布者和订阅者的事件关系的绑定中设置为:跨实例或跨服务的通讯利用消息队列的通讯管道的特性。
[0050]更具体的,所述跨实例或跨服务的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种服务内部或跨服务调用的事件总线框架方法,所述事件总线包括事件模型、订阅者和发布者,其特征在于,所述事件总线框架方法包括如下定义步骤:定义进程内事件模型接口;定义发布方法;定义配置中心;定义事件中心;定义订阅者接口约束;定义约束特性;其中,上述定义中,将发布者和订阅者的订阅关系和事件关系进行绑定,所述事件总线框架方法还包括打包步骤,包括:将上述定义步骤的代码进行打包,得到打包文件;所述事件总线框架方法还包括可以任选的分发步骤,包括将所述打包文件上传至分发中心。2.如权利要求1所述的事件总线框架方法,其特征在于,所述定义步骤中,所述定义发布方法包括定义进程内接口方法和定义跨进程发布订阅。3.如权利要求1所述的事件总线框架方法,其特征在于,所述定义步骤所述发布者和订阅者的订阅关系的绑定中,是利用时间模型的命名空间和类名在项目里唯一的特性;所述定义步骤所述发布者和订阅者的事件关系的绑定中,跨实例或跨服务的通讯利用消息队列的通讯管道的特性。4.如权利要求3所述的事件总线框架方法,其特征在于,所述跨实例或跨服务的通讯利用消息队列的通讯管道的特性是,采用Kafka的Topic或者Redis的Channel。5.如权利要求1所述的事件总线框架方法,其特征在于,所述定义步骤的所述配置中心中,采用C#语言的特性标签进行简化配置,或Java语言的@注解的形式简化配置。6.如权...

【专利技术属性】
技术研发人员:许元扉
申请(专利权)人:上海万企明道软件有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1