【问题标题】:kafka cluster configurationkafka集群配置
【发布时间】:2016-09-22 12:11:35
【问题描述】:

我是 Kafka 的新手。我对 kafka 配置有疑问。

我想使用如下的单独服务器,

server1:kafka 生产者 server2: kafka broker, kafka consumer, zookeeper

但是,我无法向代理发送消息。 我收到了这个错误消息。

在控制台生产者(server1)上, 控制台标准输出错误信息 `

[2016-05-24 16:41:11,823] ERROR Error when sending message to topic twitter with key: null, value: 3 bytes with error: Failed to update metadata after 60000 ms.(org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)

`

在 kafka 生产者(server2)上, 控制台标准输出错误信息 `

[2016-05-25 10:20:01,588] DEBUG Connection with /192.168.50.142 disconnected (org.apache.kafka.common.network.Selector)
java.io.EOFException
    at org.apache.kafka.common.network.NetworkReceive.readFromReadableChannel(NetworkReceive.java:83)
    at org.apache.kafka.common.network.NetworkReceive.readFrom(NetworkReceive.java:71)
    at org.apache.kafka.common.network.KafkaChannel.receive(KafkaChannel.java:160)
    at org.apache.kafka.common.network.KafkaChannel.read(KafkaChannel.java:141)
    at org.apache.kafka.common.network.Selector.poll(Selector.java:286)
    at kafka.network.Processor.run(SocketServer.scala:413)
    at java.lang.Thread.run(Thread.java:745)

`

运行命令如下

kafka 目录上的 server1, `

./bin/zookeeper-server-start.sh config/zookeeper.properties
./bin/kafka-server-start.sh config/server.properties
./bin/kafka-console-consumer.sh --zookeeper 192.168.50.142:2181 --from-beginning --topic twitter
./bin/kafka-topics.sh --create --zookeeper 192.168.50.142:2181 --replication-factor 1 --partitions 1 --topic twitter

`

和 kafka 目录上的 server2, `

./bin/kafka-console-producer.sh --broker-list 192.168.50.142:9092 --topic twitter

`

而我的配置是,

server1(IP:192.168.50.155):

kafka/config/producer.properties `

metadata.broker.list=192.168.50.142:9092
producer.type=sync
compression.codec=none
serializer.class=kafka.serializer.DefaultEncoder

`

server2(IP:192.168.50.142):

kafka/config/zookeeper.properties `

dataDir=/tmp/zookeeper
clientPort=2181
maxClientCnxns=0

`

kafka/config/server.properties `

broker.id=0
listeners=PLAINTEXT://0.0.0.0:9092
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/tmp/kafka-logs
num.partitions=1
num.recovery.threads.per.data.dir=1
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
log.cleaner.enable=false
zookeeper.connect=localhost:2181
zookeeper.connection.timeout.ms=6000
broker.id=0
port=9092
log.dir=/tmp/kafka-logs-1
delete.topic.enable=true

`

kafka.config/consumer.properties `

zookeeper.connect=127.0.0.1:2181
zookeeper.connection.timeout.ms=6000
group.id=test-consumer-group

`

kafka_2.11-0.9.0.0 java 1.8.0_60 节点 v4.4.4

我是否需要更改任何配置?请提供一些帮助。

【问题讨论】:

  • 第二条错误信息我写错了。(kafka producer -> kafka broker)

标签: configuration cluster-computing apache-kafka


【解决方案1】:

您的生产者配置似乎不正确。

kafka/config/producer.properties

bootstrap.servers=192.168.50.142:9092
key.serializer=org.apache.kafka.common.serialization.StringSerializer
value.serializer=org.apache.kafka.common.serialization.StringSerializer

【讨论】:

  • 感谢您的回复。我添加了您的配置,但仍然无法正常工作。(并且仅使用该配置进行测试)生产者发送文本和错误日志:test [2016-05-26 11:23:33,162] ERROR Error when sending message to topic twitter with key: null, value: 4 bytes with error: Failed to update metadata after 60000 ms. (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)
  • 没有太多日志,很难找到bug。基本上,你必须在 server2 中启动 Zookeeper 和 Kafka Broker。并从 server1 连接生产者。
  • 我建议您通过 Kafka 文档中的 [快速入门] (kafka.apache.org/documentation.html#quickstart) 并按照列出的步骤进行操作。
  • 我已经在单服务器上完成了该教程。我现在才找到原因。这是防火墙和 iptables 的问题。感谢您提供cmets。
【解决方案2】:

您需要使用适当的配置值修改 server.properties 文件并更新 /etc/hosts 文件以将您的机器解析为 IP。

【讨论】:

    【解决方案3】:

    在 server.properties 中进行以下更改:

    1. 将第二行改为

      listeners=PLAINTEXT://:9092
      
    2. 添加这一行:

      advertised.listeners=PLAINTEXT://192.168.50.142:9092
      

      需要此行,因为这是代理将向消费者和生产者通告的主机名和端口。而且由于您在另一台机器上有生产者,因此需要这条线。

    在终端中编写任何命令时,使用

        <command> --zookeeper localhost:2181 <rest of it>
    

    希望这行得通。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-27
      • 2019-07-22
      • 2019-07-23
      • 1970-01-01
      • 2021-06-12
      • 1970-01-01
      • 1970-01-01
      • 2016-11-15
      相关资源
      最近更新 更多