实时警报通知:微信告警通知的重要性解析
890
2022-12-26
本文目录一览:
国内专注流程引擎乃至BPM平台研发和应用的企业还是很多的,根据T媒体年初发布的《2019年BPM行业洞察报告》显示,Java领域广州天翎、炎黄盈动、深圳桑协世纪科技,Net领域深圳奥哲、上海易正都是专注行业近20年的老牌劲旅。
他们在设计理念和功能上擅长各局特色,比如深圳桑协主打的就是中国式复杂业务流程处理,炎黄主打流程pass模式,奥哲则推出了针对中小企业的氚云。
其他大多数厂商都是基于activiti进行改造,这些在各家的产品介绍或者产品测试页面都可以直接看出,原因有以下几个:
1,流程引擎是业务管理系统的核心大脑,没有十年或更多的时间积累根本无法形成自主研发的技术突破。
2,商业化竞争激烈的情况下,在前人的基础上比自己埋头苦干可能少走弯路。
3,就是在外企在大型集团企业信息化建设仍占据主导地位的情况下,activiti的规范性和事实占比仍有大量受众。
bpm、Activiti5的优点是规范!但这个规范更多的是对技术人员而言,比如我的系统流程引擎用了activiti,换新人的时候找同样做过activiti的就行,但国外流程引擎最大的问题就是水土不服。
Zeebe架构主要包含4大组件:client, gateway, brokers 以及 exporters。
客户端向Zeebe发送指令:
发布工作流(deploy workflows)
执行业务逻辑(carry out business logic)
创建工作流实例(start workflow instances)发布消息(publish messages)激活任务(activate jobs)完成任务(complete jobs)失败任务(fail jobs)
处理运维问题(handle operational issues)
更新实例流程变量(update workflow instance variables)解决异常(resolve incidents)
1.客户端程序可以完全独立于Zeebe扩缩容 - Zeebe brokers不执行任何业务逻辑。
2.客户端是嵌入到应用程序(执行业务逻辑的微服务)的库,用于跟Zeebe集群连接通信。
3.客户端通过基于HTTP/2协议的gRPC与Zeebe gateway连接。
4.Zeebe官方提供了Java和Go客户端。社区提供了C#,Ruby,Java客户端实现。
5.Client中,执行单独任务的单元叫JobWorker。
Gateway作为Zeebe集群的入口,转发请求到brokers。Gateway是无状态(stateless)无会话(sessionless)的,可以按需增加节点,以负载均衡及高可用。
Broker是分布式的流程引擎,维护运行中流程实例的状态。Brokers可以分区以实现横向扩容、副本以实现容错。通常情况下,Zeebe集群都不止一个节点。
需要重点强调的是,broker不包含任何业务逻辑,它只负责:
处理客户端发送的指令
存储和管理运行中流程实例的状态
分配任务给job workers
Brokes形成一个对等网络(peer-to-peer),这样集群不会有单点故障。集群中所有节点都承担相同的职责,所以一个节点不可用后,节点的任务会被透明的重新分配到网络中其他节点。
exporter系统提供Zeebe内状态变化的事件流。这些事件流数据有很多潜在用处,包括但不限于:
监控当前运行流程实例的状态
分析历史的工作流数据以做审计或BI
跟踪Zeebe抛出的异常(incident)
exporter提供了简洁的API,可以流式导出数据到任何存储系统。Zeebe官方提供开箱即用的Elasticsearch exporter,社区也提供了其他exporters。
Zeebe能做到高吞吐、高可用的微服务编排,得益于三个关键实现:
1.Zeebe设计之初就考虑了分布式部署,可以在不依赖外部组件的情况下,搭建一个zeebe broker集群,集群中节点组成一个对等的网络(peer-to-peer network)。在网络中,所有的节点都有相同的职责,保整集群不会有单点故障。
2.Zeebe内部抽象了一个只追加写的队列(可以类比理解成kafka的topic),来处理和存储数据。当集群有多个broker节点时,会将队列划分成多个分区(partitions,或者分片shards),分布到各个节点上。每个分区有多个副本(replicas)。在所有的副本中,会根据raft协议选出一个leader,leader负责接收请求和执行所有处理逻辑。其他broker上的副本就是被动的跟随者(passive followers)。当leader不可用时,followers会透明地选出新的leader。
Zeebe消息驱动架构,体现在两个方面:
1.Zeebe Broker内部使用队列(即LogStream,只追加写),异步处理请求
2.Zeebe JobWorker和Broker使用发布订阅的模式交互,当工作流任务状态发生变化,Broker会发布相应事件。JobWorker通过轮询的方式,订阅处理自己相关的事件。
2.2.1 Broker内部流处理模型
Zeebe内部实现,其实就是一系列作用在记录流(record streams)上的流处理器(stream processors)。流处理模型作为一个统一的实现方式,提供:
指令协议(command protocol,即请求响应)
记录导出(record export / streaming)
工作流演算(evaluation, 异步后台任务)
当Zeebe处理任务、工作流或者内部维护时,会产生有序的记录流:
————————————————————————————————————
原文链接: https://www.sohu.com/a/456966231_100093134
发表评论
暂时没有评论,来抢沙发吧~