美文网首页
SpringCloud 幂等性分布式解决方案

SpringCloud 幂等性分布式解决方案

作者: 无事忙忙 | 来源:发表于2017-10-11 14:53 被阅读1684次

幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数

研究了很久的幂等性解决方案。终于实现了一个模型。抛砖引玉,希望各路大神指正

1、主要是基于Spring MVC的HandlerInterceptorAdapter + ResponseBodyAdvice + redis的分布式锁。 

2、幂等的请求。需要在请求中加入header参数X-REQ-IDEM-ID,并赋值UUID,用于标记同一次请求

3、如果同一请求发生竞争。通过redis的nx来竞争锁。竞争失败的请求返回状态码499

4、如果请求时,当前UUID状态正在处理中,那么返回499

5、客户端收到reponse code 为 499。则需要通过重试策略来获得执行结束后的值

6、对于有内部转发的请求的幂等处理方式。因为在servlet规范中,forawrd在一个jvm里面会是由同一个线程处理。而且Spring MVC的不管内部出现几次forward(有人为forward,也有controller  层向上抛异常的error也会有forward到默认的/error),会在内部跳转的结束后,调用ResponseBodyAdvice。所以只需要关心ResponseBodyAdvice的内部实现即可

The Container Provider should ensure that the dispatch of the request to a target servlet occurs in the same thread of the same JVM as the original request.

7、代码和使用手册参考:https://github.com/amu007/springcloud-idempotent-starter

相关文章

  • SpringCloud 幂等性分布式解决方案

    幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数 研究了很久的幂等性解决方案。终于实现了...

  • 接口的幂等性的N种考虑

    分布式服务接口的幂等性如何设计 什么是幂等性 一个分布式系统中的某个接口,要保证幂等性,该如何保证?这个事儿其实是...

  • 幂等性

    理解 HTTP 幂等性(15')系统幂等以及常用实现方式(10')分布式系统互斥性与幂等性问题的分析与解决(30')

  • 接口设计的幂等性考虑

    分布式系统接口幂等性 1.幂等性定义 1.1 数学定义 在数学里,幂等有两种主要的定义:- 在某二元运算下,幂等元...

  • 接口幂等性

    接口幂等性 什么是接口幂等性? 最简单想到的实现接口幂等性(重复提交)的操作是什么? 最简单稍靠谱的解决方案是什么?

  • JAVA开发知识点集合

    分布式 分布式系统学习资料(ing) 理解HTTP幂等性消费幂等 Dubbo Dubbo架构设计详解 跨域 关于跨...

  • 幂等性

    1.幂等性 幂等性是分布式环境下常见的问题;幂等性指的是多次操作,结果是一致的。(多次操作数据库数据是一致的。)常...

  • 美团-分布式系统互斥性与幂等性问题的分析与解决

    分布式系统互斥性与幂等性问题的分析与解决

  • 高并发下接口幂等性解决方案

    一、幂等性概念 二、分布式系统 中的幂等性 在编程中,一个幂等操作的特点是其任意多次执行所产生的影响与一次执行的影...

  • 庖丁解eureka

    分布式系统解决方案之SpringCloud之注册中心——eureka 分布式系统解决方案中少不了注册中心这个组件,...

网友评论

      本文标题:SpringCloud 幂等性分布式解决方案

      本文链接:https://www.haomeiwen.com/subject/vjjwyxtx.html