当前位置: 首页 > 知识库问答 >
问题:

SpringKafka防止重复读取

管峻
2023-03-14

我使用Spring kafka 2. x读取来自kafka的消息。

我的问题是,如果我的方法在我的kafkalistener方法中花费了一段时间,那么kafka会发送相同的消息两次,这对我来说是个问题。我想要什么,如果我从Kafka读到消息,kafka不会向我发送这条消息第二次值,如 max.poll.interval.ms 不保证一次阅读消息。在Spring启动中实现一次阅读策略的正确方法是什么。在我的消息中,由于这个原因,我没有钥匙,我不能放一个控件。

@KafkaListener(topics = "mytopics",groupId = "mygroup",concurrency = 3",containerFactory = "MyListenerContainerFactory")
void messageReceiver(@Payload String data, @Headers MessageHeaders headers) {

  String receivedTopic=  headers.get(KafkaHeaders.RECEIVED_TOPIC).toString();

        //DO something
 
}

共有1个答案

茅桐
2023-03-14

您需要在< code > max . poll . interval . ms 内处理轮询结果。所以增加它,或者减少< code>max.poll.records。

如果你花太长时间处理,Kafka没有机制来阻止重新交付。

 类似资料:
  • 问题内容: 我想创建一个表来存储设备设置。该表具有三行:id,parameter_name和parameter_value。 该表是通过执行以下查询语句创建的: 然后通过执行以下方法存储行: 创建数据库后,将存储默认值: 但是,方法insertRow()的问题在于它无法防止重复输入。 有谁知道在这种情况下如何防止重复输入? 问题答案: 您可以使用列约束。 UNIQUE约束导致在指定列上创建唯一索引

  • 问题内容: 我不想拥有用户或位置,因为我可以有多行用户包含相同数据,或者有多行位置包含相同数据。我只想避免用户和位置都具有一定的价值,因为该行重复了许多次。 例如:这还可以 但这不行: 因为已经存在其中user = 1和location = 2的行。 如何避免重复? 问题答案: 声明对(用户,位置)的唯一约束。

  • 问题内容: 每次我通过贝宝付款时,我的信息都会在数据库中捕获,但我想防止重复。那么我该如何解决呢?还是应该检查电子邮件重复项? 编辑 据我所知,pinnaclecart将uid设置为primary。所以将它设置为唯一不是“危险”吗? 问题答案: 名字和姓氏都很好,但是除了唯一之外,其他一切都没有。我认识几个与我同名的人,因此我猜想在这两列上建立唯一索引只会令人沮丧,而无济于事。但是,使我与众不同的

  • 问题内容: 说我像这样创建一些对象类 现在,我想创建一个arraylist来容纳许多这样的对象类。 我想包含某种逻辑,以便在这种情况下…当我们尝试添加对象“ second”而不是向arrayList添加新对象时,我们将second.getNum()添加到first.getNum()。因此,如果要遍历ArrayList,它将是 我在想出一种优雅的方式来解决这个问题时遇到了麻烦。随着arraylist

  • 问题内容: 我想防止使用vb.net和MySQL作为数据库的清单表单中出现重复条目​​,这是我的代码: 结束子 我在搜索答案时发现了这个问题,但是当我尝试运行它时,它没有读取插入命令,而是即使没有相同的人员ID也会直接转到msbox“人员ID已经存在”。 有人可以检查为什么不阅读插入内容, 我的数据库表值: pcode =主键 lname =长文本 fname =长文本 办公室=长文本 名称=长文

  • 问题内容: 这个问题已经在这里有了答案 : 如何防止PHP中进行SQL注入? (28个答案) 7年前关闭。 我已经建立了一个网站,该网站即将上线,并且有几个关于防止SQL注入的问题,我知道如何使用,但是我只是想知道是否必须在要获取的所有变量上使用它SQL语句,是否在执行select语句时还是在插入更新和删除时必须使用它?另外,在我将网站投入使用之前,您还建议我实施哪些其他安全措施,在此先感谢您的帮