我使用连接到多个代理的cppkafka来生成消息并将消息发送到kafka队列。尽管味精会发送给使用者, 但是消费者在任何时候都收到null。我使用的生产消息方法与cppkafka示例完全相同,但是使用者始终收到一个空msg。请参见下面的代码段。
我已经尝试过使用配置设置,如上所示。 我也尝试过使用函数有效负载的确切类型。即使示例传递了std :: string,Ive也尝试使用确切的签名类型无济于事,即: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)); producer.flush();
预期结果: “ {” name“:” john smith“,” age“:” 25“,” city“:” NYC“}”
实际结果: 空
答案 0 :(得分:0)
请注意,此问题现已解决。 我们有3个经纪人,包括12个分区。因此生产者客户正在生产 仅发送到分区0的消息。但是在那个时候,分区0不在领先经纪人上,因此消息没有被复制到其他分区。我们部署的解决方案是在不指定分区的情况下进行生产,而主要经纪人将收到消息,并自行决定要使用哪个分区-谢谢。