扩展

注:本页面内容可能不完全适用中国大陆地区运营的 Windows Azure服务。如要了解不同地区 Windows Azure 服务的差异, 请参考本网站.

Service Bus for Windows Server 支持扩展。扩展有两个方面:

  • 计算:将新计算机添加到现有场。

  • 存储:添加新的消息容器。

计算 Service Bus 的扩展

管理员可以通过将更多计算节点添加到场来扩展场。虽然每个添加到场的计算机均包含 Service Bus for Windows Server 消息代理实例,但请注意,消息代理的计算扩展依赖于服务器中有多少个消息容器。例如,如果服务器中有一个消息容器并且有三台计算机,则 Service Bus for Windows Server 将提供高可用性,但不会自动进行扩展。建议你在场中至少配置 2n 个消息容器,其中 n 是场中的计算机数量。

请注意,Service Bus for Windows Server 消息代理的计算扩展可能不会解决所有扩展问题。如果新数据库位于不同的服务器中,则瓶颈可能在 SQL Server 层中。在这种情况下,你可以创建多个消息容器,每个消息容器都有其自己的数据库。

网关进程将根据计算机数量自动进行缩放。你可以更新客户端配置以包括新添加的服务器。Service Bus 客户端支持使用网关地址列表的 API。

数据层扩展

Service Bus for Windows Server 支持通过创建新的消息容器来扩展数据层。你可以将每个容器放在一个 SQL Server 的一个数据库中,或将每个容器放在 SQL Database 中。这样,你可以根据需要无限扩展数据层。

你还可以将计算扩展与数据层扩展一起评估以确保服务器有足够的计算能力。

Service Bus 消息容器

Service Bus for Windows Server 使用 SQL 数据库来存储消息。每个数据库均映射到一个称为消息容器的运行时组件。消息容器指向基础数据库以及附加缓存信息,以便加快 Service Bus 的运行速度。Service Bus for Windows Server 主机(服务器)可以托管多个消息容器(因此与多个数据库通信)。在任何给定时间,消息容器在单个 Service Bus for Windows Server 主机(服务器)中托管。

Service Bus 消息实体(队列或主题)在消息容器(和数据库)中创建。Service Bus 消息实体中的所有消息均存储在同一容器(和数据库)中。若要启用 Service Bus 以平衡其服务器上的负载并支持将来的扩展(添加更多服务器),你可以创建多个容器(甚至在同一数据库引擎上)。你可以通过发出以下 PowerShell 命令来创建 Service Bus 消息容器:

New-SBMessageContainer -ContainerDBConnectionString <String> [-SBFarmDBConnectionString <String>]

提示

如果你希望 Service Bus for Windows Server 场向外扩展并支持多个应用程序(租户)或多个 Service Bus 消息实体(队列或主题),建议你创建多个消息容器。

提示

即使你计划使用单个 SQL Server 数据库来存储所有与 Service Bus 相关的内容,也建议你在同一 SQL Server 上创建多个消息容器(SQL 数据库)。