一种微服务编排zeebe工作流引擎及执行方法技术

技术编号:32903460 阅读:10 留言:0更新日期:2022-04-07 11:53
本发明专利技术提供一种微服务编排zeebe工作流引擎,包括四个模块:client,gateway,brokers以及exporters;Client向broker发起请求获取激活任务,Gateway网关接收到请求后,转发到broker上执行,broker激活节点任务,把激活任务发送到MQ的topic中;jobworkers通过Client监听MQ的topic然后执行任务,执行完成后会向broker提交完成当前任务,broker收到完成命令,然后根据流程定义激活下一个节点待执行任务;本发明专利技术在client和broker之间添加一个消息队列MQ,client实时感知激活任务,及时获取到任务然后执行,减少任务堆积等待,减少流程节点的处理时间,最终使整个流程能快速执行完成,提高整个系统的并发量和响应时间。提高整个系统的并发量和响应时间。提高整个系统的并发量和响应时间。

【技术实现步骤摘要】
一种微服务编排zeebe工作流引擎及执行方法


[0001]本专利技术属于微服务编排的
,尤其涉及一种微服务编排zeebe工作流引擎及执行方法。

技术介绍

[0002]随着计算机技术和互联网的不断发展,不同平台为支持高并发,高可用,高性能,高扩展,系统架构由单体架构不断演化为微服务架构,当一个系统采用了微服务架构后,原有的业务可能并没有发生变化,但系统已被拆分成了很多新的微服务,与传统架构相比,微服务架构下会更依赖通过各微服务之间的协作来实现一个完整的业务流程,这种协作就是微服务编排。
[0003]微服务编排是一种对跨越多个不同微服务的业务流程流进行可见性和管理的方法。实现微服务编排一般都需要一个工作流引擎。常用的工作流引擎有activiti、Camunda、flowable、Zeebe等。而activiti、Camunda、flowable都是用关系数据库来管理活动工作流实例的状态,因此在吞吐量方面,以及可伸缩性存在固有的限制。而Zeebe将工作流状态直接存储在运行Zeebe的机器上,并且不依赖关系数据库,从而消除了一个关键的伸缩瓶颈。Zeebe还提供了一种简单的分区伸缩机制,这使得在集群上分发Zeebe变得很容易。所以Zeebe是用于微服务编排的工作流引擎的不错选择。Zeebe能支持大规模的流程实例启动,但当流程并发量大时,执行流程响应时间相对较长,这对于需要快速得到响应结果的微服务编排欠佳,需要对Zeebe的性能进行优化。

技术实现思路

[0004]本专利技术的目的在于提出一种微服务编排zeebe工作流引擎,通过client直接监听MQ,实时感知激活任务,及时获取到任务然后执行,减少任务堆积等待,减少流程节点的处理时间,最终使整个流程能快速执行完成,提高整个系统的并发量和响应时间。
[0005]具体技术方案如下:
[0006]一种微服务编排zeebe工作流引擎,包括四个模块:client,gateway,brokers以及exporters;其中:
[0007](1)client主要任务是向Zeebe发送指令,发布工作流程,或者执行任务逻辑;
[0008](2)gateway作为Zeebe Cluster集群的入口,转发请求到brokers;
[0009](3)Broker是分布式的流程引擎,维护运行中流程实例的状态,处理client客户端发送的指令,存储和管理运行中流程实例的状态,分配任务给job workers;
[0010](4)Exporter系统提供Zeebe内状态变化的事件流,用于监控和审计分析;
[0011]Zeebe中,client和broker通过GRPC协议进行通信;在client和broker之间添加一个消息队列MQ消息中间件,client直接监听MQ;
[0012]上述微服务编排zeebe工作流引擎的执行方法如下:
[0013]Client采用轮询方式默认每隔一段时间发起一次,向broker发起请求获取激活任
务,Gateway网关接收到请求后,转发到一个broker上执行,broker根据流程定义,激活第一个节点任务,然后把broker中生成的激活任务发送到MQ的topic中;job workers作为消费者通过Client监听MQ的topic;job workers获取到Broker中激活任务,然后通过Client执行任务,执行完成后会向broker提交完成当前任务,broker收到完成命令,然后根据流程定义激活下一个节点待执行任务,再把激活任务发送到MQ的topic中,由job workers执行任务;
[0014]在这过程中,如果broker中生成的激活任务通过GRPC协议通信主动拉取,当broker已经激活了很多任务,但client还没来获取,任务就会堆积到broker,使任务不能得到及时执行,导致任务执行延迟,以致执行完整个流程时间就会拉长。
[0015]而针对client定时主动获取任务执行,导致任务执行延迟问题,通过对client获取激活任务的逻辑进行修改,从client定时主动拉取任务改为broker主动推送任务给client。在client和broker之间添加一个消息队列MQ(常用消息中间件rocketmq,kafka,rabbitmq等),client直接监听MQ,Broker在流程流转中如果有激活任务生成,则把激活任务直接发送到消息队列MQ中,MQ中消息会直接推送给Client,Client获取消息后执行,这样激活任务可以立即执行,不需要等待,提高响应速度。
[0016]本专利技术的有益之处:client获取激活任务的方式由定时主动拉取,改为broker主动推送。这样client就能实时感知激活任务,及时获取到任务然后执行。减少任务堆积等待,减少流程节点的处理时间,最终使整个流程能快速执行完成,提高整个系统的并发量和响应时间。
附图说明
[0017]图1为本专利技术的框架及流程示意图;
[0018]图2为本专利技术client部署一个可执行流程示意图。
具体实施方式
[0019]下面结合附图和具体实施方式对本专利技术作进一步详细的说明。
[0020]如图1所示,一种微服务编排zeebe工作流引擎,包括四个模块:client,gateway,brokers以及exporters;其中:
[0021](1)client主要任务是向Zeebe发送指令,发布工作流程,或者执行任务逻辑;
[0022](2)gateway作为Zeebe Cluster集群的入口,转发请求到brokers;
[0023](3)Broker是分布式的流程引擎,维护运行中流程实例的状态,处理客户端发送的指令,存储和管理运行中流程实例的状态,分配任务给job workers;
[0024](4)Exporter系统提供Zeebe内状态变化的事件流,用于监控和审计分析;
[0025]Zeebe中,client和broker通过GRPC协议进行通信;在client和broker之间添加一个消息队列MQ消息中间件,client直接监听MQ;
[0026]上述微服务编排zeebe工作流引擎的执行方法如下:
[0027]Client采用轮询方式默认每隔100ms发起一次,向broker发起请求获取激活任务,Gateway网关接收到请求后,转发到一个broker上执行,broker根据流程定义,激活第一个节点任务,然后把broker中生成的激活任务发送到MQ的topic中;job workers作为消费者
通过Client监听MQ的topic;job workers获取到Broker中激活任务,然后通过Client执行任务,执行完成后会向broker提交完成当前任务,broker收到完成命令,然后根据流程定义激活下一个节点待执行任务,再把激活任务发送到MQ的topic中,由job workers执行任务;
[0028本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种微服务编排Zeebe工作流引擎,其特征在于,包括四个模块:client,gateway,brokers以及exporters;其中:(1)client主要任务是向Zeebe发送指令,发布工作流程,或者执行任务逻辑;(2)gateway作为Zeebe Cluster集群的入口,转发请求到brokers;(3)Broker是分布式的流程引擎,维护运行中流程实例的状态,处理client客户端发送的指令,存储和管理运行中流程实例的状态,分配任务给job workers;(4)Exporter系统提供Zeebe内状态变化的事件流,用于监控和审计分析;Zeebe中,client和broker通过GRPC协议进行通信;在client和broker之间添加一个消息队列MQ消息中间件,client直...

【专利技术属性】
技术研发人员:赵福丹
申请(专利权)人:贵州电子商务云运营有限责任公司
类型:发明
国别省市:

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

1