tutorial partitions kafka español file apache-kafka kafka-consumer-api kafka-producer-api

file - partitions - Cómo escribir un archivo a Kafka Producer



kafka connect (4)

Aquí hay algunas formas que son un poco más generalizadas pero que pueden ser excesivas para archivos simples.

cola

tail -n0 -F my_file.txt | kafka-console-producer.sh --broker-list localhost:9092 --topic my_topic

Explicación

  1. tail lee desde el final del archivo a medida que crece o se le agregan registros continuamente
  2. -n0 indica la salida 0 líneas por lo que solo se selecciona una nueva línea
  3. -F sigue el archivo por su nombre en lugar del descriptor, por lo que funciona incluso si está girado

syslog-ng

options { flush_lines (0); time_reopen (10); log_fifo_size (1000); long_hostnames (off); use_dns (no); use_fqdn (no); create_dirs (no); keep_hostname (no); }; source s_file { file("path to my-file.txt" flags(no-parse)); } destination loghost { tcp("*.*.*.*" port(5140)); }

consumidor

nc -k -l 5140 | kafka-console-producer.sh --broker-list localhost:9092 --topic my_topic

Explicación (del man nc )

-k'' Forces nc to stay listening for another connection after its current connection is completed. It is an error to use this option without the -l option. -l'' Used to specify that nc should listen for an incoming connection rather than initiate a connection to a remote host. It is an error to use this option in conjunction with the -p, -s, or -z options. Additionally, any timeouts specified with the -w option are ignored.

Árbitro

Syslog-ng

Estoy intentando cargar un archivo de texto simple en lugar de una entrada estándar en Kafka. Después de descargar Kafka, realicé los siguientes pasos:

Zookeeper iniciado

bin/zookeeper-server-start.sh config/zookeeper.properties

Servidor iniciado

bin/kafka-server-start.sh config/server.properties

Creó un tema llamado "prueba":

bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

Corrió el productor

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test Test1 Test2

Escuchado por el consumidor:

bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning Test1 Test2

En lugar de la entrada estándar, quiero pasar un archivo de datos o incluso un archivo de texto simple al Productor que puede ser visto directamente por el consumidor. Cualquier ayuda sería realmente apreciada. ¡Gracias!


Puedes canalizarlo en:

kafka-console-producer.sh --broker-list localhost:9092 --topic my_topic --new-producer < my_file.txt

Encontrado here

Desde 0.9.0:

kafka-console-producer.sh --broker-list localhost:9092 --topic my_topic < my_file.txt


$ kafka-console-producer.sh --broker-list localhost:9092 --topic my_topic < my_file.txt

trabajó para mí en Kafka-0.9.0


echo "Hello" | kafka-console-producer.sh --broker-list localhost:9092 --topic my_topic