我对RESTful API有一个问题 - 为什么在分布式系统中我们要关注幂等性。请问您能告诉我吗?
我对RESTful API有一个问题 - 为什么在分布式系统中我们要关注幂等性。请问您能告诉我吗?
如果一个服务是幂等的,那么当你多次调用该服务时,它会产生相同的最终结果。
在分布式系统中,当你调用某个服务/API时,服务可能会失败(更糟糕的是,它可能会超时并且没有向你返回失败响应)。在这种情况下,如果服务是幂等的,你可以简单地再次调用它(任意次数),而不用担心多次调用会产生负面影响。
如果服务不是幂等的,你就不能简单地再次调用它。你必须先检查前一次调用所采取的操作,然后根据其进行操作。
幂等性在分布式系统中尤为重要(也就是需要关注的事情)。通常,分布式系统包括大量的部件/组件,其中许多部件/组件将超出一个开发者对另一个开发者的控制。
Benefits include:
* improved thread safety
* minimize complexity
* easier to document (thus consume)
* easier to test
* data and state integrity will generally be easier to manage
利用纯/幂等功能在某些情况下非常有用,特别是当您不知道调用方代码是否可能会垃圾邮件发送到您的接口之一,这可能会导致系统处于糟糕状态。此外,它使消费者文档更易于理解,并最小化了一些固有的复杂性,这些复杂性来自本质上不能保证线程安全的环境。
如果您需要更多或更具体的用例或示例,说明分布式系统为什么应该将幂等性视为其架构的一部分,请告诉我/我们。
干杯