幂等性处理

最近工作中,因为重试按钮后台反应比较慢。用户一直点,我就一直提交到外部系统了。导致了一个重复提交问题。虽然不一定有用户这么做,但确实会有这样的问题。这个问题,我现在有两个思路:
一、加一个缓存。在提交之前,查询该id是否在缓存中。在就直接返回。不在,就允许提交,提交之前将id存入缓存。提交之后,就将该id从缓存中删除。这么做的场景能够在一个线程返回之前,不会重复提交的问题。但不能解决恶意提交的问题。
二、在传给前端的时候,加一个token,用令牌机制。主要是生成多个令牌了。这样,令牌一过来。直接删除。下次,再重复提交,就能解决这个问题。可以从根本上防止重复提交的问题。更有效。

我选择了第一种,因为开始并没有更好的思路。当时只有这一种方案,现在回想。应该采用第二种更好。下次引以为戒。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,292评论 19 139
  • API定义规范 本规范设计基于如下使用场景: 请求频率不是非常高:如果产品的使用周期内请求频率非常高,建议使用双通...
    有涯逐无涯阅读 7,699评论 0 6
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,894评论 18 399
  • 前天去儿子同学家玩,他家里干净整洁,进门就给人一种舒服的感觉,东西摆放井然有序,各种收纳,专门有一个房间放小孩玩具...
    LittlePiggie阅读 3,860评论 0 0
  • music.163.com/#/m/song 《回忆那么伤》今天偶尔听到的,觉得挺适合我现在的心情。 其实我活的并...
    bobo屋阅读 1,846评论 7 0