2016-08-01 266 views
2

想要通过bash脚本发送一些消息。kafka-console-producer和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" 

卡夫卡开工不错。并且我可以通过制作人控制台发送消息

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic $1 "test 1" 

但我无法将消息发送到bash脚本中。我怎样才能通过bash脚本发送它?

谢谢。

回答

8

试着这样做:

echo "test 1" | bin/kafka-console-producer.sh --broker-list localhost:9092 --topic $1 

或本:

cat file.txt | bin/kafka-console-producer.sh --broker-list localhost:9092 --topic $1 
+1

对于连续输入(即,如果一些其他进程写入文件),你可以使用:'尾-n +1 -f file.txt | bin/kafka-console-producer.sh - 经纪人列表localhost:9092 --topic $ 1' –

+0

感谢它的工作。 – scala