次の方法で共有

为相同输入设计 Azure 函数

事件驱动的体系结构和基于消息的体系结构的现实决定了需要接受相同的请求,同时保持数据完整性和系统稳定性。

为了说明,请考虑电梯呼叫按钮。 按下按钮时,按钮会亮起,电梯被发送到你的楼层。 过了一会儿,另外一个人来到你所在的大厅。 此人微笑着看着你,第二次按下发光的按钮。 想到调用电梯的命令是幂等的,你不禁微微一笑,轻声笑了出来。

按电梯呼叫按钮第二次、第三次或第四次与最终结果没有关系。 按下按钮时,无论按多少次,电梯都会被派到您的楼层。 幂等系统(如电梯)无论发出了多少次相同的命令,都会导致相同的结果。

在生成应用程序时,请考虑以下方案:

  • 如果库存控制应用程序多次尝试删除同一产品,会发生什么情况?
  • 如果有多个请求为同一个人创建员工记录,人力资源应用程序的行为如何?
  • 如果银行应用收到 100 个请求来发出相同的取款请求,这些资金会在哪里?

在很多上下文中,对函数的请求可能会接收相同的命令。 某些情况包括:

  • 重试策略多次发送同一请求。
  • 缓存命令被重播到应用程序。
  • 应用程序错误:发送多个相同请求。

为了保护数据完整性和系统运行状况,幂等应用程序的逻辑可能包括以下行为:

  • 在尝试执行删除之前验证数据是否存在。
  • 在尝试执行创建操作之前,检查数据是否已存在。
  • 协调逻辑,以在数据中创建最终一致性。
  • 并发控制。
  • 重复检测。
  • 数据新鲜度验证。
  • 保护逻辑以验证输入数据。

最终,幂等性通过确保某项操作的可能性,并且仅执行一次来实现。

后续步骤