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.

Kafka Connect autónomo para Redis: No hay datos en la base de datos de Redis después de que se haya llenado el tema.

Nuevo en el foro.

He configurado un entorno de producción de Kafka connect-standalone para Redis. Una vez que inicio el Kafka connect en modo independiente, el conector funciona correctamente y no muestra errores en los registros. Pero cuando produzco datos de prueba simples (por ejemplo: abc) en el tema, no veo ningún dato ni ‘clave’ en Redis.

Se observa una conexión desde Kafka connect hacia Redis.

Antes de esto, solo se creó un tema manualmente. No se creó ninguna clave manualmente en Redis.

Comando para ejecutar Kafka Connect
/path/connect-standalone v2.tempworker.properties v2.tempredis.sink.properties

$ cat v2.tempworker.properties
bootstrap.servers=<dirección IP del host>:
plugin.path=/ruta/jcustenborder-kafka-connect-redis-0.0.2.13
offset.storage.file.filename=/ruta/connect.offsets

connector.class=com.github.jcustenborder.kafka.connect.redis.RedisSinkConnector
key.converter=org.apache.kafka.connect.storage.StringConverter
value.converter=org.apache.kafka.connect.storage.StringConverter
key.converter.schemas.enable=false
value.converter.schemas.enable=false
errors.tolerance=all

name=v2redissink
topics=v2redistst
tasks.max=1
host=<dirección IP del host>
port=
password=<contraseña>
dbName=0
redis.table=kafconn
redis.writer=cache
redis.type=standalone
use.record.key=true

$ cat v2.tempredis.sink.properties

name=v2redissink
topics=v2redistst
tasks.max=1
plugin.path=/ruta/jcustenborder-kafka-connect-redis-0.0.2.13/lib
key.converter=org.apache.kafka.connect.storage.StringConverter
value.converter=org.apache.kafka.connect.storage.StringConverter
connector.class=com.github.jcustenborder.kafka.connect.redis.RedisSinkConnector

redis.hosts=<dirección IP del host:puerto>
redis.password=<contraseña>
dbName=0
errors.tolerance=all
redis.table=kafconn
redis.writer=cache
redis.type=standalone
use.record.key=false

internal.key.converter=org.apache.kafka.connect.storage.StringConverter
internal.value.converter=org.apache.kafka.connect.storage.StringConverter
transforms=createKey
transforms.createKey.fields=id
transforms.createKey.type=org.apache.kafka.connect.transforms.ValueToKey

Por favor, ayuda.

Gracias.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Según los archivos de configuración proporcionados, parece que la configuración de Kafka Connect para Redis debería funcionar correctamente. Sin embargo, hay algunas cosas que se pueden verificar para solucionar el problema:

    1. Verifique que Kafka Connect esté funcionando correctamente y que no haya errores en los registros. Los registros de Kafka Connect se pueden encontrar en la ruta de archivo especificada en offset.storage.file.filename.
    2. Verifique si el tema de Kafka v2redistst tiene alguna partición asignada. Si no hay particiones asignadas, los mensajes producidos en el tema no serán consumidos por el conector de sink de Redis de Kafka Connect. Para verificar las particiones, ejecute el siguiente comando: ./kafka-topics.sh --bootstrap-server <host ip="">:<port> --describe --topic v2redistst.
    3. Asegúrese de que los detalles de conexión de Redis mencionados en los archivos de configuración sean correctos y accesibles desde la instancia de Kafka Connect. Si el servidor de Redis está detrás de un cortafuegos, verifique si los puertos necesarios están abiertos.
    4. Verifique la base de datos de Redis especificada en los archivos de configuración para la clave kafconn. Si la clave no está presente, significa que el conector de sink de Redis no está escribiendo en Redis. Para ver la base de datos de Redis, ejecute el siguiente comando: redis-cli -h <host ip=""> -p <port> -a <pwd> -n 0 KEYS *.
    5. Incluya la propiedad log4j.logger.com.github.jcustenborder.kafka.connect.redis=DEBUG en el archivo v2.tempredis.sink.properties para habilitar el registro de depuración del conector de sink de Redis. Esto ayudará a diagnosticar cualquier problema con el conector.
    6. Intente producir mensajes en el tema de Kafka con un par de clave-valor en lugar de una cadena única. Esto ayudará a verificar si el conector de sink de Redis es capaz de manejar correctamente los datos de clave-valor. La propiedad use.record.key=true en el archivo v2.tempworker.properties indica que la clave del mensaje de Kafka debe usarse como clave de Redis.
    7. Si ninguno de los pasos anteriores funciona, intente actualizar el conector de sink de Redis a la última versión disponible y ejecute Kafka Connect con el conector actualizado.

    Espero que esto ayude a solucionar el problema. ¡Avíseme si tiene alguna pregunta adicional!

Comments are closed.