【问题标题】:kafka-console-producer and bash scriptkafka-console-producer 和 bash 脚本
【发布时间】:2016-12-06 16:07:01
【问题描述】:

想通过 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 脚本发送它?

谢谢。

【问题讨论】:

    标签: bash apache-kafka


    【解决方案1】:

    尝试这样做:

    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
    

    【讨论】:

    • 对于连续输入(即,如果某些其他进程写入文件),您可以使用:tail -n +1 -f file.txt | bin/kafka-console-producer.sh --broker-list localhost:9092 --topic $1
    【解决方案2】:

    这也有效:

    bin/kafka-console-producer.sh --broker-list localhost:9092 --topic "my-topic" < file.txt

    【讨论】:

      【解决方案3】:

      您还可以执行以下操作。忽略 sleep 参数。

      for x in {1..100}; do echo $x; sleep 2; done | path/to/bin/kafka-console-producer --broker-list <brk:port> --topic <topic_name>
      

      【讨论】:

        【解决方案4】:

        这可能对某些人有所帮助。我尝试运行@sereija 的答案,其中生成的消息是 JSON 格式:

        {"value_1":"name", "value_2":"preferred programming language"}, 
        

        并且解析没有正确执行。当要在队列中发布的消息具有字符串时,您需要使用反斜杠 \ 来执行 @sereija 的回答。准确地说,我的代码如下:

        echo {\"value_1\":\"name\", \"value_2\":\"preferred programming language\"} | bin/kafka-console-producer.sh --broker-list localhost:9092 --topic <topic-name>
        

        【讨论】:

          猜你喜欢
          • 2021-11-25
          • 2018-03-23
          • 1970-01-01
          • 2017-12-01
          • 1970-01-01
          • 1970-01-01
          • 2019-05-23
          • 2021-12-18
          • 2020-09-15
          相关资源
          最近更新 更多