【发布时间】:2015-08-26 09:20:55
【问题描述】:
我希望能够在 DocumentDB 中保存/更新文档,然后在 Azure 服务总线上发布事件,我希望这些以原子方式发生。
Azure 服务总线不支持分布式事务,因此对于 SQL 数据库,我保存我的记录并将记录放入消息队列表中,所有这些都在 SQL 事务中。然后,一个进程读取消息队列表并将消息放入队列并在成功时将它们从队列中删除(利用服务总线的重复数据删除,以防消息被添加两次)。
但 DocumentDB 不支持跨集合的事务,因此我无法更新文档然后将文档添加到消息队列集合中。
如何确保我对文档的更改会在总线上发布?
【问题讨论】:
-
Paul,您在哪里看到有关如何使用 DocumentDB 集合作为消息队列的文档?如果这允许您配置过滤器参数,那么您可以将消息排入同一集合中。或者,如果您认为您将有一些其他机制从 DocumentDB 集合中提取它并将其推送到总线上,那么您绝对可以编写该代码来查找特定类型的文档。我自己对这个话题很感兴趣。我一直在使用 DocumentDB 实现自己的队列和主题,但我希望拥有一个真正的服务总线。
-
自 2019 年起,cosmosdb 不支持在同一事务中添加和更新文档,除非您使用存储过程(即使那样,它们也需要位于同一分区中)。您是否使用存储过程来执行这些操作?
标签: azure transactions azureservicebus azure-cosmosdb