Zeebe文档之技术概念-Architecture(架构)

894 阅读2分钟

Zeebe架构中有四个主要组件:客户端、网关、代理和导出器。

image.png

在Camunda Platform 8中,您只与客户合作。网关、代理和导出器预先配置为提供服务,但不可访问。

在本地或私有云部署中,所有组件都是相关的。

Clients(客户端)

客户端向Zeebe发送命令:

  • 发布工作流
  • 执行业务逻辑
    • 创建工作流程实例
    • 发布消息
    • 激活任务
    • 完成任务
    • 失败任务
  • 处理运维问题
    • 更新流程实例变量
    • 解决异常

客户端应用程序可以完全独立于Zeebe进行上下扩展。Zeebe代理不执行任何业务逻辑。

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

客户端通过使用基于HTTP/2的传输的gRPC连接到Zeebe网关。要了解有关Zeebe中gRPC的更多信息,请查看Zeebe API(gRPC)。

Zeebe项目包括官方支持的Java和Go客户端。社区客户端是用其他语言创建的,包括C#、Ruby和JavaScript。gRPC协议使生成一系列不同编程语言的客户端成为可能。

Job workers

Client中,执行单独任务的单元叫Job Worker。

Job worker是一个Zeebe客户端,它使用客户端API首先激活任务,并在完成后完成或失败任务。

Gateways(网关)

网关充当Zeebe集群的单个入口点,并将请求转发给代理。

网关是无状态和无会话的,可以根据需要添加网关以实现负载均衡和高可用性。

Brokers(代理)

Zeebe Broker是分布式的流程引擎,维护运行中流程实例的状态。

Brokers可以分区以实现横向扩容、副本以实现容错。通常情况下,Zeebe集群都不止一个节点。

需要注意的是,broker不包含任何业务逻辑。它只负责:

  • 处理客户端发送的命令
  • 存储和管理活动流程实例的状态
  • 分配任务给job workers

Brokes形成一个对等网络(peer-to-peer),这样集群不会有单点故障。集群中所有节点都承担相同的职责,所以一个节点不可用后,节点的任务会被透明的重新分配到网络中其他节点。

Exporters(导出器)

exporter系统提供Zeebe内状态变化的事件流。这些事件流数据有很多潜在用处,包括但不限于:

  • 监视正在运行的流程实例的当前状态
  • 分析历史的工作流数据以做审计或BI
  • 跟踪Zeebe抛出的异常(incident)

exporter提供了简洁的API,可以流式导出数据到任何存储系统。Zeebe官方提供开箱即用的Elasticsearch exporter,社区也提供了其他exporters。

原文

Zeebe > Technical concepts > Architecture