1.如何防止消息被重复消费
在防止消息丢失的方案中,如果生产者发送完消息后,因为网络的波动,没有收到Kafka返回的ACK确认收到信息,但是实际上Broker已经收到了该消息,此时生产者就会重新发送消息数据,进行重试,于是Broker就会收到多条相同的消息数据,从而造成消费者的重复消费。
如何解决生产者发送重复消息呢?
- 生产者关闭重试机制,但是会造成数据的丢失,不建议使用此种方式。
- 通过消费者来解决非幂等性消费的问题:
- 所谓的幂等性指的是多次访问的结果是一样的,对于rest的请求(get(幂等性)、post(非幂等)、put(幂等)、delete(幂等))
- 可以在数据库中创建联合主键,防止相同的主键创建出多条记录。
- 使用分布式锁,以业务id为锁,保证只有一条记录创建成果。
2.如何保证消息的顺序消费
所谓顺序消费指
原文地址:https://blog.csdn.net/weixin_44953658/article/details/131410444
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。