1.什么是接口的幂等性?
接口的幂等性就是一个接口无论是调用一次还是多次,最后的结果应该是一样的。
2.为何需要保证接口的幂等性?
因为服务之间调用,可能存在超时。如果是成功或者失败,那么程序都是正常的。当出现超时情况时,如果重新发起调用,数据不一致或者发生了冗余,那么就不是我们期望的结果了。
3.如何保证接口的幂等性呢?
首先分析一下接口的行为:
接口行为一般为:查询、删除、修改、新增。查询:一次或多次都是一样的,具有幂等性删除:一次或多次都是一样的,具有幂等性修改:一次或多次都是一样的,具有幂等性新增:一次或多次是不一样的,不具有幂等性
如何保证新增情况下的幂等性呢?使用全局ID : 在新增时,如果已经有某个字段值为某个值的情况下,提示数据已新增。全局ID可以使用uuid,也可以使用其他ID,建议使用雪花算法,因为uuid是无序的,对于新增性能不好,可能会发生页分裂的情况。