Cosmos DB Change Feed的多个消费者 [英] Multiple consumers of Cosmos DB Change Feed

查看:13
本文介绍了Cosmos DB Change Feed的多个消费者的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用Change Feed处理器库(或Azure函数Cosmos DB触发器)订阅集合更新。如何将多个独立(非竞争)使用者设置为同一集合的源?

一种方式是使用多个租赁集合,例如leases1leases2等,但这有点浪费。

有没有办法只用一个租赁集合就能做到这一点?(例如,通过在某个位置指定使用者组名称,类似于Event Hubs Processor)

推荐答案

您可以为Azure函数Cosmos DB触发器定义leaseCollectionPrefix。在Azure门户中,只需单击您的函数,然后单击集成,然后单击高级编辑器,这将打开您的function.json。在那里您可以定义触发器的属性,例如

"bindings": [
    {
      "type": "cosmosDBTrigger",
      "name": "documents",
      "direction": "in",
      "leaseCollectionName": "leases",
      "connectionStringSetting": "myDatabase_DOCUMENTDB",
      "databaseName": "myDbName",
      "collectionName": "myCollectionName",
      "createLeaseCollectionIfNotExists": false,
      "leaseCollectionPrefix": "myFunctionSpecificValue"
    }

其他设置记录在文档

以下设置自定义内部变更馈送机制和租约收集使用情况,可以在高级编辑器的function.json中使用相应的属性名称进行设置:

  • leaseCollectionPrefix:设置后,它会向此函数的Lease集合中创建的租约添加前缀,从而有效地允许两个单独的Azure函数通过使用不同的前缀共享同一Lease集合。
  • feedPollDelay:设置后,它以毫秒为单位定义在清空所有当前更改之后轮询分区以获取提要上的新更改之间的延迟。默认值为5000(5秒)。
  • leaseAcquireInterval:设置后,它以毫秒为单位定义在分区均匀分布于已知主机实例时开始计算任务的间隔。默认值为13000(13秒)。
  • leaseExpirationInterval:设置后,它以毫秒为单位定义租用代表分区的租用的间隔。如果在此时间间隔内没有续订租约,则会导致租约过期,分区的所有权将移至另一个实例。默认值为60000(60秒)。
  • leaseRenewInterval:设置时,以毫秒为单位定义实例当前持有的所有分区租约的续订间隔。默认值为17000(17秒)。
  • checkpointFrequency:设置时,它以毫秒为单位定义租用检查点之间的间隔。默认值始终在成功的函数调用之后。
  • maxItemsPerInvocation:设置时,它自定义每次函数调用接收的最大项数。

这篇关于Cosmos DB Change Feed的多个消费者的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆