Azure - 是什么导致 ServiceBus 主题被“分区”

问题描述 投票:0回答:1

所以我有一个二头肌文件,它迭代 200 多个字符串的数组,并且应该为每个字符串创建一个相关过滤器。

var strings = [ "xxx", "yyyy" ... ]

resource CorrelationFilters 'Microsoft.ServiceBus/namespaces/topics/subscriptions/rules@2021-06-01-preview' = [for code in strings: {
  name: '${code}Filter' 
  parent: parentName
  properties: {
    filterType: 'CorrelationFilter'
    correlationFilter: {
      properties: {
        subscription: code
      }
    }
  }
}]

但是,它仅为数组中的前 100 个元素创建相关过滤器。据我所知,二头肌/代码本身没有任何问题。

所以我做了一些研究,并在 Azure 文档中看到了这一点:

所以我的问题是,在主题上创建 CorrelationFilter 是否会导致它变得“分区”?这在逻辑上是有意义的,但我似乎找不到任何表明它确实如此的东西,并且 ChatGpt 似乎认为相关过滤器不会导致它被分区。我只是想确认这是否是丢失相关滤波器的罪魁祸首。

azure azureservicebus azure-bicep
1个回答
0
投票

所以,我的问题是,在某个主题上创建相关过滤器是否会导致它变得“分区”?

经过探索后,我发现主题上的

Correlation filter
不会导致主题上的任何分区。 这里的分区涉及将主题划分为更小的单元以进行操作和性能。相关过滤器不会触发任何分区行为。

参考:博客

缺少过滤器问题可能是由于以下原因造成的:

很少有部署工具(例如 Azure 中的 bicep)可能对单个部署中创建的资源数量有限制。

要检查这一点,请创建一个小字符串长度的数组(例如:一次 20 个)并部署它。如果您能够查看所有过滤器,那么它一定是二头肌的限制。

我尝试在服务总线订阅上添加少量字符串数据的相关过滤器,如图所示,它是成功的。

var strings = [ 'xxx', 'yyyy', 'zzzz']
param NamespaceName string = 'servjs'
param TopicName string = 'latestjt'
param subsc string = 'subscja'
param location string = resourceGroup().location
resource serviceBus 'Microsoft.ServiceBus/namespaces@2022-10-01-preview' = {
  name: NamespaceName
  location: location
  properties: {
  }
}

resource serviceBusTopic 'Microsoft.ServiceBus/namespaces/topics@2022-01-01-preview' = {
  parent: serviceBus
  name: TopicName
  properties: {

  }
}
resource sub 'Microsoft.ServiceBus/namespaces/topics/subscriptions@2022-10-01-preview' = {
  name: subsc
  properties: {}
  parent: serviceBusTopic
}
resource CorrelationFilters 'Microsoft.ServiceBus/namespaces/topics/subscriptions/rules@2021-06-01-preview' = [for code in strings: {
  name: '${code}Filter' 
  parent: sub
  properties: {
    filterType: 'CorrelationFilter'
    correlationFilter: {
      properties: {
        subscription: code
      }
    }
  }
}]

部署成功:

enter image description here

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.