Zeebe是一个用于微服务编排的工作流引擎。Zeebe确保一旦启动,流程总是可以完全无误的执行,并在程序出现故障时重试步骤。在内部实现上,Zeebe维护了一个完整的审计日志,以便监控流程的进度。Zeebe具有容错性,能够无缝扩展以处理不断增长的事务量。
下面,我们将简要介绍Zeebe。要了解更多细节,我们推荐“Zeebe是什么?
Zeebe解决了什么问题,如何解决?
在一个公司多个工作流程几乎总是跨越多个微服务。例如,在电子商务公司中,“客户订单”工作流可能涉及支付微服务、库存微服务、发货微服务等:
这些跨微服务工作流是任务关键型的,但工作流本身很少建模和监控。通常,通过不同微服务的事件流只在代码中隐式地表示。
如果是这样,我们如何确保工作流的可视性并提供状态和错误监控?我们如何保证流总是完整的,即使单个微服务失败?
Zeebe给你提供如下的功能:
- 深入了解公司服务相互调用的工作流状态,包括运行中工作流的数量、平均工作流持续时间、工作流中的当前错误等。
- 基于工作流当前状态的工作流编排;Zeebe将“命令”发布为可由一个或多个微服务使用的事件,以确保工作流根据其定义进行。
- 通过配置错误处理路径(如状态重试或升级到可以手动解决问题的团队)来监视超时或其他工作流错误。
Zeebe的初衷就是用于大规模操作,为实现这一目标,它提供如下功能:
- 水平可伸缩性,不依赖外部数据库;Zeebe将数据直接写入到部署它的同一服务器上的文件系统。Zeebe使跨机器集群分配处理变得简单,从而提供高吞吐量。
- 通过易于配置的复制机制实现容错,确保Zeebe可以从机器或软件故障中恢复,不会造成数据丢失,并且停机时间最少。这样可以确保整个系统仍然可用,而无需手动操作。
- 一种消息驱动的体系结构,其中所有与工作流相关的事件都写入一个仅附加的日志,提供一个审计跟踪和工作流状态的历史记录。
- 发布-订阅交互模型,使连接到Zeebe的微服务能够保持高度的控制和自主性,包括对处理速率的控制。这些特性使Zeebe具有弹性、可扩展性和反应性。
- 在ISO标准BPMN 2.0中建模的可视化工作流,使技术和非技术利益相关者可以在广泛使用的建模语言中协作进行工作流设计。
- 一种语言无关的客户机模型,使得可以用组织用来构建微服务的几乎任何编程语言来构建Zeebe客户机。
- 作为一个独立和自给自足的系统,操作简单易用。Zeebe不需要集群协调器,比如ZooKeeper。因为Zeebe集群中的所有节点都是相等的,所以相对容易扩展,并且它与现代资源管理器和容器协调器(如Docker、Kubernetes和DC/OS)很好地配合。Zeebe的CLI(命令行界面)允许您编写脚本并自动执行管理和操作任务。
您可以在文档的“基础”部分中了解有关这些技术概念的更多信息。
Zeebe既简单又轻便
大多数现有的工作流引擎比Zeebe提供更多的功能。虽然访问许多特性通常是一件好事,但它可能以增加复杂性和降低性能为代价。
Zeebe 100%专注于为工作流的协调提供一个紧凑、健壮和可扩展的解决方案。它的目标不是支持广泛的特性,而是在这个范围内超越。
此外,Zeebe与其他系统配合良好。例如,Zeebe提供了一个简单的事件流API,它可以方便地将所有内部数据流传输到另一个系统中,例如用于索引和查询的弹性搜索。
Zeebe是否适合你
请注意,Zeebe目前处于“开发者预览”阶段,这意味着它还没有准备好生产,并且正在进行大量开发。有关更多详细信息,
请参阅路线图
。
您的应用程序可能不需要Zeebe提供的可伸缩性和性能特性。或者,您可以使用一组成熟的关于BPM(业务流程管理)的功能,Zeebe还没有提供这些功能。在这种情况下,像Camunda BPM这样的工作流自动化平台可能更适合。
zeebe qq交流群群号:856546010