您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
消息队列,如何保证消息不被重复消费?
消息,数据,不就消息队列,如何保证消息不被重复消费?
发布时间:2019-02-08加入收藏来源:互联网点击:
消息队列,如何保证消息不被重复消费?
回答于 2019-09-11 08:43:50
回答于 2019-09-11 08:43:50
抵押物担保要办理抵押登记方可具有优先受偿权,并可对抗其他第三人。
回答于 2019-09-11 08:43:50
举个例子,假设你有个系统,消费一条往数据库里插入一条,要是你一个消息重复两次,你不就插入了两条,这数据不就错了?但是你要是消费到第二次的时候,自己判断一下已经消费过了,直接扔了,不就保留了一条数据?一条数据重复出现两次,数据库里就只有一条数据,这就保证了系统的幂等性幂等性,通俗点说,就一个数据,或者一个请求,给你重复来多次,你得确保对应的数据是不会改变的,不能出错。
回答于 2019-09-11 08:43:50
现在消息机制一般都是靠中间件实现的,比如kafka、activemq等等。消息的消费策略一般有至少一次和至多一次两种。
第一、至少一次。这种情况用于消息比较重要,不能容忍丢失。消费方从中间件集群拉取消息,内部消费,消费结果需要知会到集群。如果此时消费方机器重启或者网络丢包,此时就会拉取重复消息。一般的解决方案为消费方业务逻辑保证幂等处理。
第二、至多一次。此时可能会丢失消息,不会出现重复消费情况。
作为接收方来讲,保持接口幂等是比较基础的功能。可以应对一些突发情况,比如说集群故障,或者需要追溯历史消息数据重新处理等等。
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |