标签:指纹 消费 消费者 Redis RabbitMQ 问题 MQ 消息
首先明确什么叫幂等性。
幂等性:用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生副作用。
MQ中的消息会产生重复性消费的问题:消费者消费之后会返回ack给MQ,但是此时如果网络不好,故MQ未收到确认消息,该条消息会发给其他消费者或者网络好了之后再次发送给该消费者,但实际上这条消息已经被消费过了。这就是消费者消费重复的消息。
对于消费端幂等性保障的解决方案
-
唯一Id+指纹码机制
指纹码:利用一些规则或者时间戳拼接生成而来,但是一定要保证唯一性,查询他是否存在于数据库中。优势就是:简单。劣势:单个数据库会有写入性能瓶颈。
-
Redis原子性
利用Redis执行setnx命令,天然具有幂等性。从而实现不重复消费。
标签:指纹,消费,消费者,Redis,RabbitMQ,问题,MQ,消息 来源: https://www.cnblogs.com/finajoy/p/15734051.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。