概述
Zeebe网关是Zeebe集群的一个组件,它可以被视为Zeebe集群的联系点,它允许Zeebe客户端与Zeebe集群内的Zeebe代理进行通信。有关Zeebe broker的更多信息,请访问我们的附加文档。
总而言之,Zeebe broker是Zeebe集群的主要部分,它完成所有繁重的工作,如处理、复制、导出以及基于分区的一切。Zeebe网关充当Zeebe处理分区之间的负载平衡器和路由器。
为了与Zeebe集群进行交互,Zeebe客户端将命令作为gRPC消息发送到 Zeebe网关(默认为端口 26500)。鉴于网关支持gRPC,用户可以使用不同语言的多个客户端与Zeebe集群进行交互。
当 Zeebe网关收到有效的gRPC消息时,该消息将转换为内部二进制格式,并转发到Zeebe集群内的分区领导者之一。命令类型和值可以确定将命令转发到哪个分区。
例如,创建新的流程实例以循环方式发送到不同的分区。如果该命令与现有流程实例相关,则必须将该命令发送到最初创建该命令的同一分区(由键确定)。
要确定相应分区的当前领导者,网关必须维护Zeebe集群的拓扑。网关和代理使用gossip协议形成一个集群来分发信息。
Zeebe Gateway的架构设计目的
- Zeebe网关保护brokers免受外部来源的影响。它允许部署模式为DMZ,而 Zeebe网关是唯一的通信点。
- Zeebe网关允许用户以任意语言轻松创建客户端,同时保持客户端实现尽可能精简。客户端可以保持精简,因为网关负责集群拓扑并将请求转发到正确的分区。
- 网关可以独立于代理运行和扩展,这意味着它可以转换消息,将它们分发给正确的分区领导者,并分离应用程序的关注点。例如,如果系统遇到传入请求的峰值,并且用户已经在代理端预先设置了足够的分区,但没有足够的网关来处理负载,则可以轻松扩展它们。
运行方式
Zeebe Gateway支持2种运行方式:嵌入式运行、独立运行。
- 嵌入式运行
在嵌入式模式下,网关它将作为Zeebe broker的一部分运行。broker将通过嵌入式网关接受gRPC客户端消息,并在集群内分发转换后的请求。这意味着嵌入式网关接受的请求不一定会转发到,与嵌入式网关一起运行的broker上,而是分发到其他broker。
嵌入式网关可用于开发和测试目的,并减轻部署和运行多个应用程序的负担。例如,在zeebe-process-test中,嵌入式网关用于接受客户端命令并直接写入引擎。
- 独立运行
在独立模式下,网关将作为独立的应用程序运行。这是Camunda官方推荐的生产运行方式,也是Helm chart中的默认方式(也是唯一选项)。如前所述,这允许分离关注点,特别是因为网关可以根据