为什么80%的码农都做不了架构师?>>>   

背景

在业务开发中,我们常会面对防止重复请求的问题。当服务端对于请求的响应涉及数据的修改,或状态的变更时,可能会造成极大的危害。重复请求的后果在交易系统、售后维权,以及支付系统中尤其严重。
前台操作的抖动,快速操作,网络通信或者后端响应慢,都会增加后端重复处理的概率。

重复消息是SOA服务实现中非常常见的问题,你永远不要指望调用方每次请求消息不一样,对于读操作,重复消息可能无害,可对于写操作很可能就是灾难。

可以通过幂等(Idempotent)模式处理重复的消息,基本处理思路是:

  • 调用者给消息一个唯一请求ID标识。ID标识一个工作单元,这个工作单元只应执行一次,工作单元ID可以是Schema的一部分,也可以是一个定制的SOAP Header,服务的Contract 可以说明这个唯一请求ID标识是必须的;
  • 接收者在执行一个工作单元必须先检验该工作单元是否已经执行过。检查是否执行的逻辑通常是根据唯一请求ID ,在服务端查询请求是否有记录,是否有对应的响应信息,如果有,直接把响应信息查询后返回;如果没有,那么就当做新请求去处理。

幂等方案

对时间全局性要求高的,可能就必须选择DB这种持久化方案比较可靠,但是性能不够好啊(然后就要考虑loadmemory,以及数据同步的问题,就一步还要考虑实时性要求了)。在空间的要求中,根据不同的幂等范围,可以考虑分布式数据库(分布式集群全局流水号幂等)。还是某种少量数据幂等(可能只需要单台,做好主备)。

数据的对象和范围

  • 你要考虑你的幂等的全局性:空间全局性和时间全局性。
  • 空间全局性:比如是交易流水幂等还是用户ID幂等。是某种类型交易流水幂等,还是某个人|机构|渠道的交易流水幂等
  • 时间全局性:是幂等几秒,还是几分钟,还是永远。
  • 不同的要求,可以有不一样的解决方案、难度和成本。

转载于:https://my.oschina.net/yu120/blog/668381

分布式服务协调---幂等(Idempotent)机制相关推荐

  1. Cris 玩转大数据之分布式服务协调神器 ZooKeeper

    文章目录 0.什么是ZooKeeper? 1.安装 ZooKeeper Ⅰ. 解压 Ⅱ.配置环境变量(可选) ⅲ.修改配置文件以及同步 Ⅳ.ZooKeeper集群搭建以及集群脚本编写 2.客户端操作 ...

  2. 微服务架构---幂等机制

    1背景介绍 1.1 幂等性定义 数学定义 在数学里,幂等有两种主要的定义: 在某二元运算下,幂等元素是指自己重复运算(或对于函数是为复合)的结果等于它自己的元素.例如,乘法下唯一两个幂等实数为0和1, ...

  3. 图灵最强诸葛老师最新分享:分布式服务框架原理与实践.pdf篇

    如何实现高容量大并发数据库服务 | 数据库分布式架构设计 ? 一为什么要做分布式数据库架构改造? 云计算大数据时代,传统的数据库架构已经无法支撑企业高容量的数据增长,满足高并发的业务需求.对企业数据库 ...

  4. WCF分布式开发步步为赢(12):WCF事务机制(Transaction)和分布式事务编程

    今天我们继续学习WCF分布式开发步步为赢系列的12节:WCF事务机制(Transaction)和分布式事务编程.众所周知,应用系统开发过程中,事务是一个重要的概念.它是保证数据与服务可靠性的重要机制. ...

  5. XXL-REGISTRY v1.0.2 发布,分布式服务注册中心

    Release Notes 1.服务端空值也支持响应,客户端注册信息发现null值缓存,避免缓存穿透: 2.客户端配置监控逻辑优化,避免异常情况下重试请求太频繁: 3.客户端日志优化:仅变更日志保留为 ...

  6. 分布式服务框架原理与实践pdf_深度解析微服务治理的技术演进和架构实践

    为什么需要服务治理? 第一.业务需求 随着业务的发展,服务越来越多,如何协调线上运行的各个服务,保障服务的SLA,对服务架构和运维人员是一个很大的挑战.随着业务规模的不断扩大,小服务资源浪费等问题逐渐 ...

  7. 分布式服务框架 Zookeeper — 管理分布式环境中的数据

    FROM: http://www.superwu.cn/2014/11/26/1461 本节本来是要介绍ZooKeeper的实现原理,但是ZooKeeper的原理比较复杂,它涉及到了paxos算法.Z ...

  8. 分布式服务动态上下线感知

    分布式服务动态上下线感知 首先,我们要从解决问题的角度得知分布式服务的由来,从单机服务到分布式服务经历了哪些过程 起初,服务是比较单一的,在一个工程包之中会包含所有的模块,但随着互联网的快速发展,客户 ...

  9. 华为18级大牛倾情奉送:分布式服务框架和微服务设计原理实战文档,啃完发现涨薪如此简单

    前言 分布式服务框架不仅仅包含核心的运行时类库,还包括服务划分原则.服务化最佳实践.服务治理.服务监控.服务开发框架等,它是一套完整的解决方案,用来协助应用做服务化改造,以及指导用户如何构建适合自己业 ...

最新文章

  1. 如何卸载sql2008,完全清除
  2. http://ju.outofmemory.cn/entry/307891---------TICK
  3. 汶川地震《生死不离》歌词
  4. 硬纪元AI峰会前瞻:线下大数据驱动下的新零售,目标是精准营销
  5. BZOJ3832: [Poi2014]Rally(拓扑排序 堆)
  6. 分享个10.2越狱手贱删除cydia最糟糕情况的恢复方法
  7. PS教程第六课:魔棒工具进行抠图
  8. 第三阶段应用层——1.9 数码相册—在LCD上显示BMP图片
  9. Matlab:i 和j其实是MATLAB内置函数(built-in function)
  10. 带掩码的自编码器(MAE)最新的相关论文推荐
  11. html表单站内搜,网站集成百度、Bing必应搜索引擎,在网页中实现站内全文搜索...
  12. vue + openlayers鼠标移动获取地图经纬度格式化的两种方式
  13. 【数据集】人工智能领域比较常见的数据集汇总
  14. 家用宽带如何叠加多条宽带,提高局域网速度
  15. vue生成自定义二维码样式
  16. 详解自监督发展趋势! 何恺明连获三年CVPR最高引用的秘诀是?
  17. qq linux for android,腾讯QQ for android 糊弄还是敷衍?
  18. Vivado 2020.1 and 2020.2 错误 arm-none-eabi-ar: *.o: Invalid argument
  19. text to image(一):《GENERATING IMAGES FROM CAPTIONS WITH ATTENTION》
  20. 【原创纯手打】如何用微信小程序写留言板(附代码)

热门文章

  1. 计算机蓝屏了 怎么维修,电脑蓝屏怎么解决
  2. (73)Wangdao.com第十二天_JavaScript consol 对象与控制台
  3. 【Ubuntu】普通用户修改了/etc/sudoers文件权限导致的问题
  4. 《树莓派Python编程入门与实战》——2.3 使用Raspbian图形用户界面
  5. 2022最新淘客三合一cms商城优惠券系统搭建教程
  6. Gameplay框架
  7. “千山之首 大果榛品”2022年辽阳大果榛子地理标志标识推介会开幕
  8. 计算机常用英语1600,中考英语必备1600个词汇PDF.pdf
  9. 虚拟内存和缺页,为什么使用一键加速会使你的电脑变慢?
  10. [SRM603] WinterAndSnowmen