我正在使用连接到多个代理的 cppkafka 来生成消息并将消息发送到 kafka 队列。虽然消息被发送给消费者, 但消费者始终收到空值。我完全按照 cppkafka 示例使用了生成消息方法,但消费者总是收到空消息。请参阅下面的代码片段。
我试过使用上面看到的配置设置。 我也尝试过使用函数有效负载的确切类型。即使示例传递了 std::string,我也尝试使用确切的签名类型无济于事,即:CppKafka::Buffer cppkafka::Buffer msg(json_msg.c_str(), json_msg.length() );
Configuration config = {
{"metadata.broker.list", "brokers:<portno>"},
{"debug", "all"},
{"client.id", "myapp"},
{"message.timeout.ms", 300000},
{"session.timeout.ms", 600000},
{"enable.auto.commit", false}
};
//Create the producer
Producer producer(config);
int partition = 0;
const string json_msg = "{"name":"john smith", "age":"25", "city":"NYC"}";
// Produce a message!
producer.produce(MessageBuilder("mytopic").partition(0).payload(json_msg)); 生产者.flush();
预期结果: "{"name":"john smith", "age":"25", "city":"NYC"}"
实际结果: 空
最佳答案
请注意,此问题现已解决。 我们有 3 个代理,有 12 个分区。所以生产者客户正在生产 仅发送到分区 0 的消息。但在那个时间点,分区 0 不在主代理上,因此消息不会被复制到其他分区。我们部署的解决方案是在不指定分区的情况下生成,而主要代理将接收消息并自行决定使用哪个分区 - 谢谢。
关于c++ - 从 cppkafka 推送到 kafka 主题时获取消费者的空值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57875428/