2016-08-01 114 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