Kafka
Componente externo
Componente usado como message broker entre los componentes .NET Core, usando al patrón producer/consumer, donde un componente produce un mensaje y otro componente consume el mensaje para procesarlo.
Este componente se despliega en modo cluster donde el servidor de administración y todos los servidores de aplicaciones son nodos, cada uno cuenta con un kafka-controller y un kafka-broker. La cantidad mínima de nodos para formar un cluster es de tres, con esto tenemos una Alta Disponibilidad, con esta configuración se puede tolerar la falla de uno de los nodos y aun mantener el quorum necesario para que el cluster siga operativo.
Kafka Controller
Componente kafka con el rol de controller que se encarga de organizar la gestión de brokers, topics, particiones y réplicas dentro del cluster.
- Formato: imagen docker
- Despliegue:
servidor de administraciónyservidores de aplicaciones - Ubicación docker compose:
/opt/viridian/kafka-controller/docker-compose.yml - Imagen docker base:
confluentinc/cp-kafka:7.9.0 - Puertos expuestos: 9093
Kafka Broker
Componente kafka con el rol de broker que se encarga recibir datos de los producers, almacenarlos y luego entregarlos a los consumers. Cada broker maneja una parte de los datos, y los datos están replicados en varios brokers para asegurar la disponibilidad y durabilidad. Los brokers colaboran entre sí para equilibrar la carga y gestionar los datos de manera eficiente.
- Formato: imagen docker
- Despliegue:
servidor de administraciónyservidores de aplicaciones - Ubicación docker compose:
/opt/viridian/kafka-controller/docker-compose.yml - Imagen docker base:
confluentinc/cp-kafka:7.9.0 - Puertos expuestos: 9092,9992
Kafka UI
Componente para visualizar la información de los brokers, topics y consumers del cluster kafka.
Se puede acceder mediante el proxy desplegado en el servidor de administración y las credenciales de acceso son generadas de forma aleatoria durante el proceso de instalación, en el punto: Configuración de Kafka, los valores están disponibles en el archivo defaults/local_vars.yml en el directorio ansible del servidor de administración:
Ejemplo:
kafka:
username: kafka
password: 6JGEyMlXzK3x4OCN2OVi

- Formato: imagen docker
- Despliegue:
servidor de administración - Ubicación docker compose:
/opt/viridian/kafka-ui/docker-compose.yml - Imagen docker base:
ghcr.io/kafbat/kafka-ui:v1.2.0 - Puertos expuestos: ninguno