【发布时间】:2018-10-18 15:15:14
【问题描述】:
我有一个用于 Azure 函数的 Cosmos DB 触发器。我想将传入文档中的一些数据展平并写入(Azure)SQL Server。
有什么方法可以保证至少一次交货?
我查看了https://hackernoon.com/reliable-event-processing-in-azure-functions-37054dc2d0fc,它在事件中心事件触发 Azure 函数的情况下提供了一些选项,但我不确定这是否同样适用于导致触发器触发的 CosmosDB 更改源。
在 Cosmos DB 更改提要网站 https://docs.microsoft.com/en-us/azure/cosmos-db/change-feed 上声明:
对文档的每个更改在更改提要中只出现一次,并且客户端管理他们的检查点逻辑。更改提要处理器库提供自动检查点和“至少一次”语义。
这是否意味着它实现了与 Event Hub 中的检查点系统相同(或类似的东西)?
如果将熔断器模式应用于此 CosmosDB 触发器流到 Azure 函数的流程,如https://hackernoon.com/reliable-event-processing-in-azure-functions-37054dc2d0fc 末尾的详细说明,是否以相同的方式工作?
【问题讨论】:
-
天蓝色存储队列和天蓝色服务总线队列都保证至少一次交付,因此在其中任何一个上发布消息并使用它异步处理它
-
如果使用此选项,Azure 函数中的不成功交付将如何传达回服务总线?
-
您必须将消息标记为成功或失败才能传达不成功的传递,但 Mikhail 的回答看起来比这个选项更好
标签: azure azure-functions azure-cosmosdb reliable-message-delivery