美文网首页java架构设计专题
谈谈服务的幂等设计

谈谈服务的幂等设计

作者: 先生zeng | 来源:发表于2019-09-24 20:37 被阅读0次

概念

一般来说,幂等设计有两个层次上的理解。

  1. 请求层面

保证请求重复执行和执行依次的结果一致。数学上表示:

f...f(f(x)) = f(x)
x为参数
f为执行函数/方法

  1. 业务层面
  • 同一用户不重复下单
  • 商品不超买
  • MQ消费端去重

目的

  1. 请求重试

    比如银行的幂等案例。

  2. 结果灾难性

    • 转账
    • 交易

幂等的范围

  • 读写请求层面
    请求对数据发生改变,需要做幂等。 写请求会。读请求不会
  • 架构层面
image

只有数据访问层会。

例如:

image

1.插入数据或创建时,一般有自增id,不会导致重复插入,但是如果有业务id时,会有多次插入。

2.读的时候,基本不会有

3.更新时,如上图,如果是第一种更新,不会有问题,如果是第二种,会导致出错。

4.删除时,同理

  • 业务层面幂等
  1. 冗余部署多个进程

    存在并发消费的可能性

    并发转变为串行消费

本质

分布式锁问题

待续

相关文章

  • 谈谈服务的幂等设计

    概念 一般来说,幂等设计有两个层次上的理解。 请求层面 保证请求重复执行和执行依次的结果一致。数学上表示: f.....

  • 03知识点

    05服务幂等设计 幂等定义 请求层面幂等 保证请求重复执行和执行一次的结果一致 业务层面幂等 同一用户不重复下单 ...

  • 第二章架构设计之技术实践篇(上)

    本章要点 高可用设计手段 高并发设计手段 服务无状态化设计 服务负载均衡设计 服务幂等性设计 1.高可用设计手段 ...

  • 分布式服务 API 的幂等设计方案 & Spring Boot

    分布式服务 API 的幂等设计方案 & Spring Boot + Redis 拦截器实现实例 什么是幂等? 简...

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

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

  • 服务幂等

    1.读幂等 1.1 select 天然幂等 2.写幂等 2.1 insert 请求方携带唯一ID 2.2 upda...

  • 幂等设计

    为什么要做幂等? 幂等就是一个操作,不论执行多少次,产生的效果和返回的结果都是一样的。 例如 1、 前端重复提交选...

  • 幂等设计

    一种通过避免使用对象成员作为函数返回值的幂等设计 这样函数是独立的,无依赖 1.幂等设计减少了重复及嵌套调用的设计...

  • 服务高可用:幂等性设计

    QQ用得起来越少了,现在就加入300+技术微信群,公众号回复"微信群"即可加入。 什么是幂等性? 一般在服务调用时...

  • 怎么做到具备幂等性的服务

    幂等的目的 为何会存在需要服务的幂等,在互联网中由于网络的不稳定和一些业务重复确认设计,对一个接口的调用存在重试的...

网友评论

    本文标题:谈谈服务的幂等设计

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