java架构设计专题

谈谈服务的幂等设计

2019-09-24  本文已影响0人  先生zeng

概念

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

  1. 请求层面

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

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

  1. 业务层面

目的

  1. 请求重试

    比如银行的幂等案例。

  2. 结果灾难性

    • 转账
    • 交易

幂等的范围

image

只有数据访问层会。

例如:

image

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

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

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

4.删除时,同理

  1. 冗余部署多个进程

    存在并发消费的可能性

    并发转变为串行消费

本质

分布式锁问题

待续

上一篇下一篇

猜你喜欢

热点阅读