es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo acceder al servicio de Kafka en Github action?

Ejecutar la prueba más básica usando un cliente Kafka produce el error NoBrokersAvailable.
Mi configuración de flujo de trabajo en Github es la siguiente:


test:
runs-on: ubuntu-latest
services:
zoo_keeper:
image: bitnami/zookeeper
ports:
- 2181:2181
env:
ALLOW_ANONYMOUS_LOGIN: yes
options: >-
--health-cmd "echo mntr | nc -w 2 -q 2 localhost 2181"
--health-interval 10s
--health-timeout 5s
--health-retries 5
kafka:
image: bitnami/kafka
ports:
- 9092:9092
options: >-
--health-cmd "kafka-broker-api-versions.sh --version"
--health-interval 10s
--health-timeout 5s
--health-retries 5
env:
KAFKA_CFG_KAFKA_ZOOKEEPER_CONNECT: "zookeeper:2181"
ALLOW_PLAINTEXT_LISTENER: yes
KAFKA_CFG_LISTENERS: "CLIENT://:9092,INTERNAL://:9093"
KAFKA_CFG_ADVERTISED_LISTENERS: "CLIENT://localhost:9092,INTERNAL://kafka:9093"
KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP: "CLIENT:PLAINTEXT,INTERNAL:PLAINTEXT"
KAFKA_CFG_INTER_BROKER_LISTENER_NAME: INTERNAL
...
steps:
- name: test
...
run: pytest

Ejecutar la misma configuración localmente (en docker-windows) y ejecutar las pruebas localmente (no desde un contenedor) funciona y se conecta exitosamente a Kafka.

Mis pruebas utilizan KAFKA_URL=localhost:9092 y se ejecutan en el host del runner de Github (no en un contenedor).
En otra prueba, me conecto exitosamente a postgres (usando localhost como el nombre del host).
Estoy seguro de que es un error de configuración, ¿qué me falta?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Según la información proporcionada, parece que el problema está en la configuración de KAFKA_URL. El error NoBrokersAvailable indica que el cliente de Kafka no puede conectarse a ningún bróker.

    En la configuración de tu flujo de trabajo de Github, estás utilizando la imagen Docker bitnami/kafka y exponiendo el puerto 9092. El KAFKA_URL debe configurarse como localhost:9092 para conectarse al bróker de Kafka que se ejecuta en el servicio kafka.

    Asegúrate de que la configuración de KAFKA_URL se pase correctamente a tus pruebas en la configuración del flujo de trabajo de Github. También puedes intentar configurar KAFKA_ADVERTISED_LISTENERS como "PLAINTEXT://localhost:9092" en el servicio kafka para asegurarte de que se anuncie el listener correcto.

    Además, verifica si la imagen bitnami/kafka requiere alguna configuración o ajuste específico para funcionar correctamente. Es posible que requiera configuraciones adicionales para funcionar en un flujo de trabajo de Github.

    Si el problema persiste, es posible que debas realizar una depuración adicional inspeccionando los registros del bróker de Kafka y el cliente de prueba para determinar la causa raíz del problema.

Comments are closed.