生成UUID以响应Kafka Producer发送的消息

时间:2018-06-06 10:55:27

标签: c apache-kafka producer

我正在尝试开发一个应用程序,它从Cache中读取字节数组(表示C结构和与UUID相关联的每个数组),并通过C中的Producer应用程序将其发送到Kafka Server。

kafka生产者应用程序累积固定数量的此类数据包并立即发送它们。

我希望获得的是确认批处理中的哪些消息已成功传递并获取其UUID,以便我可以从缓存应用程序中清除它们。我是kafka的新手,请指导我完成这项工作的最佳方式。

2 个答案:

答案 0 :(得分:1)

向Kafka发送消息时,您可以将Producer配置为请求确认(通常公开为名为acks的配置)。这允许生产者知道消息是否成功。

例如,使用librdkafka(在我看来,最好的C Kafka客户端),您可以在产品请求完成时获得传递报告回调。它包含消息,并在发生故障时出错。这应该使您能够轻松识别哪些消息成功发送并将其标记为已完成。

请参阅rd_kafka_conf_set_dr_msg_cb方法配置传递报告回调。 simple producer example证明了它的用法。

答案 1 :(得分:0)

为什么不创建另一个“侦听”已确认消息的消费者主题,然后将其从缓存中删除。然后,生产者可以在需要时将消息推送到该主题。