La Red de Conocimientos Pedagógicos - Currículum vitae - Arquitectura y núcleo de Zeebe

Arquitectura y núcleo de Zeebe

La arquitectura Zeebe consta principalmente de cuatro componentes: cliente, puerta de enlace, proxy y salida.

Los clientes envían instrucciones a Zeebe:

Publicar flujo de trabajo (flujo de trabajo de implementación)

Ejecutar lógica empresarial (ejecutar lógica empresarial)

Crear un instancia de flujo de trabajo (iniciar la instancia de flujo de trabajo) publicar un mensaje (activar el trabajo) completar el trabajo (fallar el trabajo).

Manejar problemas operativos.

Actualizar variables de instancia de flujo de trabajo y resolver excepciones.

1. El programa cliente puede escalar de forma completamente independiente de Zeebe: el agente de Zeebe no ejecuta ninguna lógica empresarial.

2. El cliente es una biblioteca (microservicio que ejecuta la lógica empresarial) integrada en la aplicación y se utiliza para conectarse y comunicarse con el clúster Zeebe.

3. El cliente se conecta a la puerta de enlace de Zeebe a través de gRPC basado en el protocolo HTTP/2.

4.Zeebe proporciona oficialmente clientes Java y Go. La comunidad proporciona implementaciones de clientes C#, Ruby y Java.

5. Cinco minutos después. Del lado del cliente, la unidad que realiza una única tarea se denomina trabajador de trabajo.

La puerta de enlace sirve como entrada al clúster de Zeebe y reenvía la solicitud al proxy. La puerta de enlace no tiene estado ni sesión, y se pueden agregar nodos según sea necesario para lograr equilibrio de carga y alta disponibilidad.

Broker es un motor de procesos distribuido que mantiene el estado de las instancias de procesos en ejecución. Los corredores pueden dividirse para escalamiento horizontal y replicarse para tolerancia a fallas. Normalmente, un clúster Zeebe tiene varios nodos.

Cabe enfatizar que el broker no contiene ninguna lógica de negocios y solo es responsable de:

Procesar las instrucciones enviadas por los clientes

Almacenar y administrar el proceso en ejecución. estado de las instancias.

Asignar tareas a los trabajadores

Los Brokes forman una red de igual a igual, por lo que no existe un único punto de falla en el clúster. Todos los nodos del clúster comparten las mismas responsabilidades, por lo que cuando un nodo deja de estar disponible, las tareas de ese nodo se redistribuyen de forma transparente a otros nodos de la red.

El sistema exportador proporciona un flujo de eventos para cambios de estado en Zeebe. Hay muchos usos potenciales para estos datos de flujo de eventos, que incluyen, entre otros:

Monitoreo del estado de las instancias de proceso actualmente en ejecución.

Analice datos históricos de flujo de trabajo para auditoría o BI.

Seguimiento de excepciones lanzadas por Zeebe.

Exporter proporciona una API sencilla para transferir datos a cualquier sistema de almacenamiento. Zeebe proporciona oficialmente un exportador Elasticsearch listo para usar y la comunidad también proporciona otros exportadores.

Zeebe puede lograr un alto rendimiento y una orquestación de microservicios de alta disponibilidad, gracias a tres implementaciones clave:

1. Zeebe está diseñado teniendo en cuenta la implementación distribuida. Puede crear un clúster de intermediarios de zeebe sin depender de componentes externos. Los nodos del clúster forman una red de igual a igual. En la red, todos los nodos tienen las mismas responsabilidades, por lo que no existe un punto único de falla para todo el clúster.

2. Zeebe abstrae internamente una cola de solo escritura (que puede entenderse como el tema de Kafka) para procesar y almacenar datos. Cuando un clúster tiene varios nodos de agentes, la cola se divide en varias particiones (o fragmentos) y se asigna a cada nodo. Cada partición tiene múltiples copias. Entre todas las réplicas, se seleccionará un líder de acuerdo con el protocolo de la balsa, y el líder es responsable de recibir solicitudes y ejecutar toda la lógica de procesamiento. Las copias de otros corredores son seguidores pasivos. Cuando un líder deja de estar disponible, los seguidores elegirán de forma transparente un nuevo líder.

La arquitectura basada en mensajes de Zeebe se refleja en dos aspectos:

1. Zeebe Broker utiliza una cola internamente (es decir, LogStream, que solo agrega escrituras) para procesar solicitudes de forma asincrónica.

2.Zeebe JobWorker y Broker interactúan a través del modelo de publicación y suscripción.

Cuando el estado de la tarea del flujo de trabajo cambie, el Broker publicará el evento correspondiente. Las suscripciones a JobWorker manejan sus propios eventos relacionados mediante encuestas.

2.2.1 Modelo de procesamiento de procesos internos del agente

La implementación interna de Zeebe es en realidad una serie de procesadores de flujo que actúan sobre el flujo de registro. Como implementación unificada, el modelo de procesamiento de flujo proporciona:

Protocolo de comando (es decir, respuesta de solicitud)

Exportación/transmisión de registros

Cálculo del flujo de trabajo (evaluación, fondo asíncrono) tareas)

Cuando Zeebe procesa tareas, flujos de trabajo o mantenimiento interno, produce un flujo ordenado de registros:

———————————— ——— ——————————————————————

Enlace original: /A/456966231 _ 10093134