当前位置:   article > 正文

【Kafka】【二十三】Kafka优化之防止消息丢失和重复消费_kafka 如何减少数据丢失

kafka 如何减少数据丢失

Kafka优化之防止消息丢失和重复消费

如何防止消息丢失

  • ⽣产者:1)使⽤同步发送 2)把ack设成1或者all,并且设置同步的分区数>=2
  • 消费者:把⾃动提交改成⼿动提交

如何防止重复消费

在防⽌消息丢失的⽅案中,如果⽣产者发送完消息后,因为⽹络抖动,没有收到ack,但实际上broker已经收到了。

此时⽣产者会进⾏重试,于是broker就会收到多条相同的消息,⽽造成消费者的重复消费。

怎么解决:

  • ⽣产者关闭重试:会造成丢消息(不建议)
  • 消费者解决⾮幂等性消费问题:
    所谓的幂等性:多次访问的结果是⼀样的。对于rest的请求(get(幂等)、post(⾮幂等)、put(幂等)、delete(幂等))
    解决⽅案:
    • 在数据库中创建联合主键,防⽌相同的主键创建出多条记录
    • 使⽤分布式锁,以业务id为锁。保证只有⼀条记录能够创建成功

请添加图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/煮酒与君饮/article/detail/738088
推荐阅读
相关标签
  

闽ICP备14008679号