1.如何防止消息被重复消费
在防止消息丢失的方案中,如果生产者发送完消息后,因为网络的波动,没有收到Kafka返回的ACK确认收到信息,但是实际上Broker已经收到了该消息,此时生产者就会重新发送消息数据,进行重试,于是Broker就会收到多条相同的消息数据,从而造成消费者的重复消费。
如何解决生产者发送重复消息呢?文章来源:https://www.toymoban.com/news/detail-506272.html
- 生产者关闭重试机制,但是会造成数据的丢失,不建议使用此种方式。
- 通过消费者来解决非幂等性消费的问题:
- 所谓的幂等性指的是多次访问的结果是一样的,对于rest的请求(get(幂等性)、post(非幂等)、put(幂等)、delete(幂等))
- 可以在数据库中创建联合主键,防止相同的主键创建出多条记录。
- 使用分布式锁,以业务id为锁,保证只有一条记录创建成果。
2.如何保证消息的顺序消费
所谓顺序消费指文章来源地址https://www.toymoban.com/news/detail-506272.html
到了这里,关于Kafka消息队列面临的优化问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!