我正在使用最新版本的kafka(kafka_2.12-1.0.0.tgz)。我已经设置了带有 3 个代理的简单集群(只是在每个实例的属性文件中更改了broker.id=1 和listeners=PLAINTEXT://:9092)。集群启动后,我使用以下命令创建了主题
./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 13 --topic demo
然后使用以下命令启动kafka消费者和生产者
./kafka-console-producer.sh --topic demo --broker-list localhost:9094,localhost:9093,localhost:9092
./kafka-console-consumer.sh --group test --bootstrap-server localhost:9094,localhost:9093,localhost:9092 --topic demo
当所有经纪人都起来时,一切都好。但是,如果我先杀死(按启动顺序)代理消息将发送到代理,但消费者无法接收任何消息。消息不会丢失。启动该代理消费者后立即收到消息。
关闭broker实例后consumer的日志:
[2018-01-09 13:39:31,130] 警告 [消费者 clientId=consumer-1,
groupId=test] 无法建立与节点 2147483646 的连接。
经纪人可能不可用。 (org.apache.kafka.clients.NetworkClient)
[2018-01-09 13:39:31,132] 警告 [消费者 clientId=consumer-1,
groupId=test] 无法建立与节点 1 的连接。经纪人
可能不可用。 (org.apache.kafka.clients.NetworkClient)
[2018-01-09 13:39:31,344] 警告 [消费者 clientId=consumer-1,
groupId=test] 无法建立与节点 2147483646 的连接。
经纪人可能不可用。 (org.apache.kafka.clients.NetworkClient)
[2018-01-09 13:39:31,451] 警告 [消费者 clientId=consumer-1,
groupId=test] 无法建立与节点 1 的连接。经纪人
可能不可用。 (org.apache.kafka.clients.NetworkClient)
[2018-01-09 13:39:31,848] 警告 [消费者 clientId=consumer-1,
groupId=test] 无法建立与节点 2147483646 的连接。
经纪人可能不可用。 (org.apache.kafka.clients.NetworkClient)
[2018-01-09 13:39:31,950] 警告 [消费者 clientId=consumer-1,
groupId=test] 无法建立与节点 1 的连接。经纪人
可能不可用。 (org.apache.kafka.clients.NetworkClient)
[2018-01-09 13:39:32,363] 警告 [消费者 clientId=consumer-1,
groupId=test] 无法建立与节点 2147483646 的连接。
经纪人可能不可用。 (org.apache.kafka.clients.NetworkClient)
[2018-01-09 13:39:33,092] 警告 [消费者 clientId=consumer-1,
groupId=test] 无法建立与节点 2147483646 的连接。
经纪人可能不可用。 (org.apache.kafka.clients.NetworkClient)
[2018-01-09 13:39:34,216] 警告 [消费者 clientId=consumer-1,
groupId=test] 无法建立与节点 2147483646 的连接。
经纪人可能不可用。 (org.apache.kafka.clients.NetworkClient)
[2018-01-09 13:39:34,218] 警告 [消费者 clientId=consumer-1,
groupId=test] 异步自动提交偏移量
{demo-0=OffsetAndMetadata{偏移=3,元数据=''},
demo-1=OffsetAndMetadata{偏移=3, 元数据=''},
demo-2=OffsetAndMetadata{offset=2, 元数据=''},
demo-3=OffsetAndMetadata{offset=2, 元数据=''},
demo-4=OffsetAndMetadata{offset=1, 元数据=''},
demo-5=OffsetAndMetadata{offset=1, 元数据=''},
demo-6=OffsetAndMetadata{offset=3, 元数据=''},
demo-7=OffsetAndMetadata{offset=2, 元数据=''},
demo-8=OffsetAndMetadata{offset=3, 元数据=''},
demo-9=OffsetAndMetadata{offset=2, 元数据=''},
demo-10=OffsetAndMetadata{偏移=3, 元数据=''},
demo-11=OffsetAndMetadata{偏移=2, 元数据=''},
demo-12=OffsetAndMetadata{offset=2,metadata=''}} 失败:偏移
提交失败并出现可重试异常。您应该重试提交
偏移量。根本错误是:协调器不可用。
(org.apache.kafka.clients.consumer.internals.ConsumerCoordinator)
[2018-01-09 13:39:34,219] 警告 [消费者 clientId=consumer-1,
groupId=test] 无法建立与节点 1 的连接。经纪人
可能不可用。 (org.apache.kafka.clients.NetworkClient)
再次启动缺少broker后的consumer日志:
[2018-01-09 13:41:21,739] 错误 [消费者 clientId=consumer-1,
groupId=test] 分区 demo-0 上偏移量 3 处的偏移量提交失败:
这不是正确的协调员。
(org.apache.kafka.clients.consumer.internals.ConsumerCoordinator)
[2018-01-09 13:41:21,739] 警告 [消费者 clientId=consumer-1,
groupId=test] 异步自动提交偏移量
{demo-0=OffsetAndMetadata{偏移=3,元数据=''},
demo-1=OffsetAndMetadata{偏移=3, 元数据=''},
demo-2=OffsetAndMetadata{offset=2, 元数据=''},
demo-3=OffsetAndMetadata{offset=2, 元数据=''},
demo-4=OffsetAndMetadata{offset=1, 元数据=''},
demo-5=OffsetAndMetadata{offset=1, 元数据=''},
demo-6=OffsetAndMetadata{offset=3, 元数据=''},
demo-7=OffsetAndMetadata{offset=2, 元数据=''},
demo-8=OffsetAndMetadata{offset=3, 元数据=''},
demo-9=OffsetAndMetadata{offset=2, 元数据=''},
demo-10=OffsetAndMetadata{偏移=3, 元数据=''},
demo-11=OffsetAndMetadata{偏移=2, 元数据=''},
demo-12=OffsetAndMetadata{offset=2,metadata=''}} 失败:偏移
提交失败并出现可重试异常。您应该重试提交
偏移量。根本错误是:这不是正确的
协调员。
(org.apache.kafka.clients.consumer.internals.ConsumerCoordinator)
[2018-01-09 13:41:22,353] 错误 [消费者 clientId=consumer-1,
groupId=test] 分区 demo-0 上偏移量 3 处的偏移量提交失败:
这不是正确的协调员。
(org.apache.kafka.clients.consumer.internals.ConsumerCoordinator)
[2018-01-09 13:41:22,354] 警告 [消费者 clientId=consumer-1,
groupId=test] 异步自动提交偏移量
{demo-0=OffsetAndMetadata{偏移=3,元数据=''},
demo-1=OffsetAndMetadata{偏移=3, 元数据=''},
demo-2=OffsetAndMetadata{offset=2, 元数据=''},
demo-3=OffsetAndMetadata{offset=2, 元数据=''},
demo-4=OffsetAndMetadata{offset=1, 元数据=''},
demo-5=OffsetAndMetadata{offset=1, 元数据=''},
demo-6=OffsetAndMetadata{offset=3, 元数据=''},
demo-7=OffsetAndMetadata{offset=2, 元数据=''},
demo-8=OffsetAndMetadata{offset=3, 元数据=''},
demo-9=OffsetAndMetadata{offset=2, 元数据=''},
demo-10=OffsetAndMetadata{偏移=3, 元数据=''},
demo-11=OffsetAndMetadata{偏移=3, 元数据=''},
demo-12=OffsetAndMetadata{offset=2,metadata=''}} 失败:偏移
提交失败并出现可重试异常。您应该重试提交
偏移量。根本错误是:这不是正确的
协调员。
(org.apache.kafka.clients.consumer.internals.ConsumerCoordinator)
Thanks