数据库幂等
❶ 幂等是什么
这里有这抄么一段:
GET与POST
你可能想袭了解GET和POST之间有什么区别,并想知道什么时候使用它们。从理论上讲,如果请求是幂等的就可以使用GET,所谓幂等是指多个请求返回相同的结果。实际上,相应的服务器方法可能会以某种方式修改状态,所以一般情况下这是不成立的。这只是一种标准。更实际的区别在于净荷的大小,在许多情况下,浏览器和服务器会限制URL的长度URL用于向服务器发送数据。一般来讲,可以使用GET从服务器获取数据;换句话说,要避免使用GET调用改变服务器上的状态。
一般地,当改变服务器上的状态时应当使用POST方法。不同于GET,需要设置XML- HttpRequest对象的Content-Type首部,如下所示:
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
与GET不同,POST不会限制发送给服务器的净荷的大小,而且POST请求不能保证是幂等的。
你做的大多数请求可能都是GET请求,不过,如果需要,也完全可以使用POST。
❷ 离散数学 什么是幂等元
教材上有的,翻翻书吧。
离散数学中幂等元指的是:在某集合 E 中定义了一个运算 *,如果 E 中的元 a 满足 a*a = a,则称 a 为 E 的幂等元。
❸ 如何保证幂等性
数据的对象和范围
你要考虑你的幂等的全局性:空间全局性内和时间全局性。
空间全局性:容比如是交易流水幂等还是用户ID幂等。是某种类型交易流水幂等,还是某个人|机构|渠道的交易流水幂等
时间全局性:是幂等几秒,还是几分钟,还是永远。
不同的要求,可以有不一样的解决方案、难度和成本。
幂等方案
对时间全局性要求高的,可能就必须选择DB这种持久化方案比较可靠,但是性能不够好啊(然后就要考虑loadmemory,以及数据同步的问题,就一步还要考虑实时性要求了)
在空间的要求中,根据不同的幂等范围,可以考虑分布式数据库(分布式集群全局流水号幂等)。还是某种少量数据幂等(可能只需要单台,做好主备)。