2

我正在从控制台生产者向 Ec2 实例上的 kafka 0.9 代理发送一条简单的问候消息,并发送到它在 VPC 中的内部 IP 地址。

我得到的错误是 Batch Expired (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)

./bin/kafka-console-producer --broker-list kafka1.acme.local:9092 -topic misc-verify
hello from laptop
[2016-08-11 09:57:39,126] ERROR Error when sending message to topic misc-verify with key: null, value: 17 bytes with error: Batch Expired (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)

两台机器都在专用网络上。服务器可以通过 ping、ssh 等方式访问。

我在生产者机器上安装了相同版本的 Confluent (confluent-2.0.1)

代理服务器 kafka1.acme.local 上的控制台生产者工作,按预期接收消息。只有来自其他机器的生产者因 Batch Expired 错误而失败。

消息从未收到到代理服务器 kafka1.acme.local 上的主题日志

我安装了 kafkacat,它看起来像这样(代理主机为 0.0.0.0)

> kafkacat -L -b kafka1.acme.local:9092
Metadata for all topics (from broker -1: kafka1.acme.local:9092/bootstrap):
 1 brokers:
  broker 0 at 0.0.0.0:9092
 1 topics:
  topic "misc-verify" with 1 partitions:
    partition 0, leader 0, replicas: 0, isrs: 0

%3|1470930115.688|FAIL|rdkafka#producer-0| 0.0.0.0:9092/0: Failed to connect to broker at 0.0.0.0:9092: Undefined error: 0
%3|1470930115.688|ERROR|rdkafka#producer-0| 0.0.0.0:9092/0: Failed to connect to broker at 0.0.0.0:9092: Undefined error: 0

kafka1.acme.local(非生产服务器)上的 kafka server.properties 文件中的设置

broker.id=0
listeners=PLAINTEXT://0.0.0.0:9092
port=9092
host.name=10.10.1.74
#advertised.host.name=<hostname routable by clients>
num.network.threads=3
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.flush.interval.messages=10000
#log.flush.interval.ms=1000
log.retention.hours=168
#log.retention.bytes=1073741824
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connect=kafka1.acme.local:2181
zookeeper.connection.timeout.ms=6000
confluent.support.metrics.enable=true
confluent.support.customer.id=anonymous

谢谢!

4

0 回答 0