业务中如何实现幂等性

在消息处理中经常需要考虑到消息重复发送了怎么办?

这个时候需要做幂等处理,也就是一个消息只能被消费一次,那如何判断一个消息已经被消费了呢?

1、利用类似mysql这种具有唯一性约束的数据库机制

    评论:需要落库,比较重

2、消费消息的时候,先根据唯一key值做一次select,有则不用消费,没有则消费

    评论:select不一定是从关系型数据库中获取

3、利用集合的contains方法

    评论:分布式环境下可以借助redis来实现,存在网络消耗,且集合的大小需要确定一个固定大小,或者设计成一个队列,

    分布式网络环境下,如何本地缓存实现去重?

4、利用分布式缓存(如redis),做已处理标识位,每次处理消息的时候都去check一下

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 姓名:周小蓬 16019110037 转载自:http://blog.csdn.net/YChenFeng/art...
    aeytifiw阅读 34,883评论 13 425
  • “ 消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列...
    落羽成霜丶阅读 4,284评论 1 41
  • 文/逍影歌 生活了这么久,我去过不少人的家里拜访,发现身边年轻人喜欢采用简约的北欧风格的装修,简单素洁,看后反倒是...
    阿颖sxcw阅读 698评论 6 13
  • 前言 什么是 Spring Boot ? Spring Boot简化了基于Spring的应用开发,你只需要"run...
    sim_cai阅读 555评论 0 0
  • 最近看了一本书名字叫《就因为没有时间,才什么都能办到》,是一位日本妇产科医师写的自己追求理想的亲身经历。作为一个两...
    氪星人阅读 1,622评论 0 6

友情链接更多精彩内容