【问题标题】:Azure cosmosdb changefeed for document collection用于文档收集的 Azure cosmosdb changefeed
【发布时间】:2019-08-30 00:10:21
【问题描述】:

是否可以将在集群节点上运行的服务注册为观察者,以更改集群中跨多个 cosmos db 帐户的文档集合?

如果是 Azure Function(由文档集合的 ChangeFeed 触发),则需要为集群中的每个 cosmos db 帐户预配该函数。

https://docs.microsoft.com/en-us/azure/cosmos-db/change-feed-processor

https://docs.microsoft.com/en-us/azure/cosmos-db/serverless-computing-database

changefeed 处理器库如何触发服务 API 端点? 或者,如何将运行在集群节点上的服务注册为观察者,以更改集群中跨多个 cosmos db 帐户的文档集合?

【问题讨论】:

    标签: azure azure-cosmosdb


    【解决方案1】:

    更改馈送处理器库可以在任何控制台/工作程序应用程序中使用,并在能够让您的应用程序运行的任何主机中运行。示例可在 GitHub 存储库https://github.com/Azure/azure-documentdb-changefeedprocessor-dotnet#example

    上获得

    限制是一个观察者可以在一个帐户中收听一个集合。如果您有多个帐户,则每个集合(即使它们具有相同的名称)都是不同的集合,并且需要运行更改馈送处理器库的单个实例(集合不跨越多个帐户)。这个实例可以和其他实例在同一个计算单元中,它会共享资源(CPU/RAM)或独立的。

    【讨论】:

    • 您能否分享更多信息,说明在集合上带有触发器的 azure 函数是否是更好的选择,还是注册为更改提要观察者的控制台/工作应用程序是更好的选择?
    • 它们都是有效的。这取决于您喜欢的抽象级别。使用 Azure Functions,您可以按执行次数(根据消费计划)付费,并且可以为您处理扩展,您无需对观察者进行编码,因此注入依赖项可能会更困难,但整体编码要简单得多。使用 CFP 库,您需要付费的工作人员,无论更改次数如何,您都可以更好地控制内部代码,并且可以根据自己的喜好自定义扩展,但您还负责维护这些工作人员。
    • 我正在尝试将 CFP 库与一个工人和一个注册的观察者一起使用。只要受监控的集合发生变化,我的租约集合就会更新。但是 ProcessChangesAsync 方法没有被调用。我正在从我的机器本地运行 worker 服务。
    • 检查租约中出现的Owner 是否与您在工作人员中使用的主机名相同。如果不是,这意味着您有另一个正在运行的观察者正在使用相同的租约集合侦听相同的集合。如果您想让多个独立的工作人员监听同一个集合并使用相同的租约集合,请为每个工作组分配一个LeasePrefix
    • 所有者为空。我只有一个工人实例也在本地运行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-10
    • 1970-01-01
    • 2020-05-23
    • 1970-01-01
    • 1970-01-01
    • 2019-08-05
    相关资源
    最近更新 更多