为了账号安全,请及时绑定邮箱和手机立即绑定

如何只获取Kafka主题的最新消息?

如何只获取Kafka主题的最新消息?

C#
慕桂英546537 2022-12-24 10:12:31
有没有办法分解消息,以便只使用最新的消息?我试图将消息保存在列表中,但没有成功var consumer = new Consumer(new ConsumerOptions(topic, router));foreach (var message in consumer.Consume()){    Console.WriteLine(Encoding.UTF8.GetString(message.Value));}输出应为:1、2、3、4输出为:1、1、2、1、2、3、1、2、3、4
查看完整描述

2 回答

?
湖上湖

TA贡献2003条经验 获得超2个赞

您可以使用称为日志压缩的东西,它将使用相同的密钥“截断”消息。因此,当您使用相同的密钥发送消息时,您将仅获得该密钥的最后一条消息/值。默认情况下启用此功能。当您发送消息1, 1, 2, 1, 2, 3, 1, 2, 3, 4并且您希望将它们读取为1, 2, 3, 4时,您为消息提供了相同的密钥,这些密钥应该被覆盖彼此(因此所有1条消息都获得相同的密钥,所有2条消息都获得相同的密钥,...)。



查看完整回答
反对 回复 2022-12-24
?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

事实上,做你想做的唯一方法是有一个单一分区的主题并将max.poll.records设置为一个。

否则,就没有办法了,因为最后一条消息没有意义。任何输入消息都可以被推送到不同的分区中,并且您有一些与主题所具有的分区数相关的最后消息。


查看完整回答
反对 回复 2022-12-24
  • 2 回答
  • 0 关注
  • 214 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信