幂等性

2019-09-02 15:30:46 浏览数 (1)

不知道幂等性我也就忍了,但总知道防止表单重复提交吧?让我们看一下业务场景,如下图:

维基百科定义 a.在某二元运算下,幂等元素是指被自己重复运算(或对于函数 是为复合)的结果等于它自己的元素。例如,乘法下唯一两个幂等实数为0和1。 b.某一元运算为幂等的时,其作用在任一元素两次后会和其作用一次的结果相同。 例如,高斯符号便是幂等的。

二元运算 设S为一具有作用于其自身的二元运算的集合,则S的元素s称为幂等的(相对于*)当 s *s = s. 特别的是,任一单位元都是幂等的。若S的所有元素都是幂等的话,则其二元运算*被称做是幂等的。 例如,并集和交集的运算便都是幂等的。 一元运算 设f为一由X映射至X的一元运算,则f为幂等的,当对于所有在X内的x, f(f(x)) = f(x). 特别的是,恒等函数一定是幂等的,且任一常数函数也都是幂等的。

请求幂等分类:

  • 请求分类:CRUD
  • 请求层面:web>>nginx>>网关>>业务逻辑>>数据访问>>DB/Cache

幂等控制方法:

  • 防止表单重复提交
  • 程序幂等控制
  • 数据库唯一索引
  • 禁用重试!?

分布式架构尤其是要注意幂等性控制,如果控制不好,上线之后将是修不完的数据,填不完的坑。你平时幂等性怎么处理的?欢迎留言。

0 人点赞