为什么 kafka 0.10 console producer 无法向 kafka 0.9 发送消息?

Why kafka 0.10 console producer cannot send messages to kafka 0.9?

为什么kafka 0.10 console producer无法向kafka 0.9发送消息?

我在 0.9 版(在服务器端)启动 kafka 控制台消费者。 我在 0.10 版(在客户端)中启动了 kafka console producer。 然后我进入了生产者异常(下)。

怎么可能新的生产者不能给老的消费者发送消息呢? 是否可以将新生产者设置为一种已弃用的模式以向旧卡夫卡发送消息?

$ bin\windows\kafka-console-producer.bat --broker-list my_server:9092 --topic my_topic

[2016-08-30 14:03:53,365] 卡夫卡生产者 I/O 线程中的错误未捕获错误:(org.apache.kafka.clients.producer.internals.Sender) org.apache.kafka.common.protocol.types.SchemaException:读取字段时出错 'brokers':读取字段时出错 'host':读取长度为 25452 的字符串时出错,只有 69 个字节可用 在 org.apache.kafka.common.protocol.types.Schema.read(Schema.java:73) 在 org.apache.kafka.clients.NetworkClient.parseResponse(NetworkClient.java:380) 在 org.apache.kafka.clients.NetworkClient.handleCompletedReceives(NetworkClient.java:449) 在 org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:269) 在 org.apache.kafka.clients.producer.internals.Sender.运行(Sender.java:229) 在 org.apache.kafka.clients.producer.internals.Sender.运行(Sender.java:134) 在 java.lang.Thread.run(Thread.java:745)

Kafka 0.10.0 引入了一种新的消息格式。我不完全确定,但看起来您正在将新格式的消息发送给显然对此一无所知的经纪人。

您应该尝试强制 0.10 生产者使用旧的消息格式。您可以在这里找到更多信息:http://kafka.apache.org/documentation.html#upgrade_10_breaking