【问题标题】:Limit on number of partitions in service bus queue服务总线队列中的分区数限制
【发布时间】:2021-12-11 00:27:25
【问题描述】:

我在服务总线队列中可以拥有的分区数量是否有任何限制? Documentation 提到了一些限制,但没有提到任何关于否的内容。分区数。

目前,Service Bus 对分区队列和主题施加了以下限制: 高级消息传递层不支持分区队列和主题。使用 SessionId 在首要层中支持会话。 分区队列和主题不支持在单个事务中发送属于不同会话的消息。 服务总线目前允许每个命名​​空间最多 100 个分区队列或主题。每个分区队列或主题计入每个命名空间 10,000 个实体的配额(不适用于高级层)。

查看 Azure 门户上的服务总线队列页面:

是不是有些不同,或者我们可以只有 Azure 门户中提到的 16 个分区?

类似的问题,但没有完全回答问题,因为没有可用的文档:Are there any limitation on the number of partitions in a Azure Service Bus Queue or Topics?

【问题讨论】:

    标签: azure azureservicebus azure-servicebus-queues


    【解决方案1】:

    请参阅enabling partitioning 上的文档页面:

    在标准层命名空间中,您可以创建大小为 1、2、3、4 或 5 GB(默认为 1 GB)的服务总线队列和主题。启用分区后,服务总线会创建实体的 16 个副本(16 个分区),每个副本的指定大小相同。因此,如果您创建一个大小为 5 GB 的队列,其中包含 16 个分区,则最大队列大小变为 (5 * 16) = 80 GB。

    分区选项只是一个复选框(在门户中)或命令行选项(--enable-partitioning true)。如上述文档所述,分区数始终为 16。

    【讨论】:

    • 非常感谢您的参考和回答。还有一件事 - 如果我们尝试使用不同的分区键和 no 发布消息会发生什么。不同的分区键在任何时间点超过 16 个?
    • 有一个函数可以将分区键映射到 16 个分区之一。文档中没有明确说明,但类似于hash(partition_key) mod 16。在没有分区键的情况下,消息以循环方式分配给分区。
    猜你喜欢
    • 1970-01-01
    • 2021-11-04
    • 1970-01-01
    • 1970-01-01
    • 2013-08-19
    • 2017-02-25
    • 1970-01-01
    • 2021-11-14
    • 2021-02-07
    相关资源
    最近更新 更多