Kafka-console-producer and bash script
quero enviar uma mensagem pelo script bash.
bin/zookeeper-server-start.sh config/zookeeper.properties > zookeeper.log 2>&1 &
sleep 2
bin/kafka-server-start.sh config/server.properties > server.log 2>&1 &
sleep 2
#Create topic
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic $1
sleep 2
#Get topics list
echo "kafka has next topics:"
bin/kafka-topics.sh --list --zookeeper localhost:2181
#send message
echo "will send messages:"
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic $1 "test 1"
O Kafka começou bem. E posso enviar uma mensagem pela consola do produtor.
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic $1 "test 1"
Mas não posso enviar mensagem para o guião do bash. Como posso enviá-lo pelo guião do bash ?
Obrigado.
8
3 answers
Tenta fazer isto:
echo "test 1" | bin/kafka-console-producer.sh --broker-list localhost:9092 --topic $1
Ou isto:
cat file.txt | bin/kafka-console-producer.sh --broker-list localhost:9092 --topic $1
13
Author: serejja, 2016-08-01 14:57:56
Você também pode fazer o abaixo. Ignore o parâmetro de latência.
for x in {1..100}; do echo $x; sleep 2; done | path/to/bin/kafka-console-producer --broker-list <brk:port> --topic <topic_name>
3
Author: AtulyaB, 2018-04-03 15:07:13
Isto também funciona:
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic "my-topic" < file.txt
0
Author: Pedro Silva, 2018-03-21 13:53:03