Zeebe体系结构中有四个主要组件:客户端(client)、网关(gateway)、代理(broker)和导出器(exporter)。架构图如下:

Client

客户端是嵌入到应用程序(例如执行业务逻辑的微服务)中以连接到Zeebe集群的库。客户端有两个主要用途:

  • 执行业务逻辑(启动工作流实例、发布消息、处理任务)
  • 处理操作问题(更新工作流实例变量,解决事件)
  • 客户端通过使用基于HTTP/2的传输的GRPC连接到Zeebe网关。要了解Zeebe中有关GRPC的更多信息,请查看文档的GRPC部分。
  • ZEEBE项目包括正式支持的Java和GO客户端,GRPC使得可以在不同的编程语言范围内生成客户端。社区客户端是用其他语言创建的,包括C、Ruby和JavaScript。
  • 客户端应用程序可以完全独立于Zeebe进行上下扩展——Zeebe代理不执行任何业务逻辑。

Gateway

  1. 网关将请求代理到代理,充当Zeebe集群的单个入口点。
  2. 网关是无状态和无会话的,可以根据需要添加网关以实现负载平衡和高可用性。

Broker

Zeebe broker是一个分布式工作流引擎,用于保持活动工作流实例的状态。

broker可以为水平可伸缩性进行分区,并为容错性进行复制。Zeebe部署通常由多个broker组成。

需要注意的是,broker中没有应用程序业务逻辑。其唯一职责是:

  1. 存储和管理活动工作流实例的状态
  2. 向客户端分发工作项

broker构成了一个对等网络,其中没有单点故障。这是可能的,因为所有代理执行相同类型的任务,并且网络中透明地重新分配不可用代理的职责。

Exporter

exporter系统在Zeebe中提供状态更改的事件流。此数据有许多潜在用途,包括但不限于:

  • 监视正在运行的工作流实例的当前状态
  • 分析用于审计、商业智能等的历史工作流数据
  • 跟踪Zeebe创建的事件

exporter包含一个简单的API,您可以使用它将数据流传输到您选择的存储系统中。Zeebe包括开箱即用的ElasticSearch,其他社区贡献的中间件也可用。

zeebe qq交流群群号:856546010

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐