Azure Service Bus 分区命名空间功能正式发布
在最近的 Ignite 大会上,微软宣布了 Azure Service Bus 分区命名空间功能的正式发布(GA)。该功能允许客户在高级消息传递层中使用分区,以提升性能和可靠性。
关于 Azure Service Bus
Azure Service Bus 是微软提供的完全托管的云企业消息代理,支持消息队列和发布-订阅主题。队列和主题组件位于一个命名空间中,这是由数十个全活动虚拟机组成的大型集群的容量切片,可能跨越三个 Azure 可用区。此次正式发布是继去年 公共预览 之后的重要更新。
分区命名空间的优势
在高级层中使用分区命名空间,客户可以在支持可用区的区域中获得 99.99% 的服务水平协议(SLA)。微软 Service Bus 项目经理 Eldert Grootenboer 提到:
分区命名空间通过 消息单元(Messaging Units, MU) 进行扩展,配置的 MU 会均匀分布在不同的分区中。目前,最多可以扩展到 4 个分区,每个分区可以从 1MU 扩展到 16MU,因此总扩展能力可达 64MU。
标准层与高级层的区别
分区命名空间功能在 Azure Service Bus 的标准层和高级层中均可使用,但创建分区命名空间时的行为有所不同:
- 高级层:在命名空间创建时设置分区数量。
- 标准层:分区命名空间的分区数量是预定义的。
此外,高级层的分区命名空间不允许非分区实体的存在,而标准层则没有此限制。
架构差异
在 Ignite 大会的 Service Bus Q&A 环节中,Grootenboer 解释了标准层和高级层的架构差异:
标准层和高级层是两种完全不同的架构。高级层在系统架构上进行了多项改进,这些改进不仅适用于 Service Bus,也适用于 Event Hubs。新架构提供了许多高级功能,客户可以在高级层中体验到这些优势。
与其他云服务的对比
AWS 和 Google 也提供完全托管的云消息代理服务,并支持分区功能:
- Amazon SQS:通过 FIFO 队列的分区 提供高吞吐量。
- Google Pub/Sub:在 Lite 主题 中支持分区。
微软的投资动机
当被问及微软为何投资于分区功能时,Grootenboer 表示:
我们平台的一个限制是单个消息代理最多只能扩展到 16MU。然而,许多客户在高吞吐量场景中需要超越这一限制。通过新的分区命名空间功能,我们不再受限于单个消息代理的吞吐量,而是可以将多个代理的吞吐量结合为一个抽象命名空间。这使得客户能够根据需要扩展,几乎没有吞吐量限制。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。