向外扩展 SQL Server 层
对于每个 BizTalk 组,添加一个主 MessageBox 数据库。 随后添加的所有 MessageBox 数据库称为辅助 MessageBox。 主 MessageBox 处理所有订阅和消息路由。 它还可以发布消息。 辅助 MessageBox 数据库只有在专门将其配置为发布消息时才能执行此操作。
如何添加辅助 MessageBox 数据库
可以通过以下两种方式添加辅助 MessageBox 数据库:
在同一物理服务器上添加辅助 MessageBox 数据库。
如果现有 MessageBox 物理服务器具有足够的 CPU 和 I/O 资源,并且仅由于锁争用造成瓶颈,则可以使用这种方式。 在单独的 IO 驱动器上创建辅助 MessageBox 数据库。
优点:
其他 MessageBox 可以使用额外的 CPU 余量
只需要较少的 SQL Server 许可证
消除了网络跃点
在不同的物理服务器上添加辅助 MessageBox 数据库。
在这种情况下,将具有自己的 IO 的专用物理服务器用作额外 MessageBox 数据库。
下图显示了将 SQL 层从一个 MessageBox 数据库向外扩展到三个 MessageBoxes 数据库的方案:
何时向外扩展 MessageBox 数据库
MessageBox 数据库成为瓶颈。 这些瓶颈可能是:
Cpu 在非常昂贵且复杂的业务流程方案中,MessageBox 数据库会消耗大量 CPU 资源。 添加其他发布 MessageBox 数据库应有助于增加吞吐量。
锁争用 具有多个主机实例或业务流程的复杂方案往往会在 MessageBox 数据库上创建锁争用。 同样,添加其他发布 MessageBox 数据库应有助于增加吞吐量。
向上扩展不能解决瓶颈问题。 例如,如果主 MessageBox 数据库上出现锁争用,向外扩展是唯一的选择。
纵向扩展太昂贵。 例如,如果将现有 4 处理器服务器升级到 8 向服务器的成本比添加另一个 4 处理器服务器昂贵,则向外扩展是更好的选择。
不能向外扩展 SQL 层的情况
理论上,只要主 MessageBox 数据库不是瓶颈,SQL 层就可能无限扩展。 为此,考虑使主 MessageBox 数据库成为非发布数据库,这样它仅执行路由。 但是,主 MessageBox 数据库由于锁争用出现瓶颈后,您就不能再向外扩展 SQL 层。
向外扩展的策略和注意事项
首先纵向扩展 Master MessageBox 数据库,然后横向扩展。
从 1 个扩展到 3 个 SQL MessageBox 数据库,而不是 1 到 2 个数据库。 考虑上图中标题为“4 BizTalk Server,1 SQL Server拓扑”所示的 1 SQL Server 拓扑,并假设 SQL Server 受 CPU 限制,换句话说,CPU 处理是一个瓶颈。 如果只将一个 MessageBox 数据库添加到此拓扑结构中,则主 Messagebox 仍将为 CPU 绑定且辅助 MessageBox 数据库将不能得到充分利用。 因此,缩放因子几乎为 1。 如果在 Master MessageBox 数据库上禁用发布,并将 Master MessageBox 数据库专用于执行路由,则辅助 MessageBox 数据库将执行发布。 这并不能增加总体吞吐量,尽管辅助 MessageBox 数据库只用作发布服务器,但它仍会成为瓶颈。 因此,这种情况下建议的向外扩展方式为:添加 2 个辅助 MessageBox 数据库并在主 MessageBox 数据库上禁用发布。
主 MessageBox 数据库最终将成为瓶颈。 因此,作为主 MessageBox 数据库宿主的物理计算机应更快和更大。
为了最大程度地减少通过网络发送数据(和关联的 DTC 开销),请考虑将多个 MessageBox 数据库放置于具有专用驱动器的同一物理计算机上。 同时,确保多个 MessageBox 数据库共享资源时,存放这些数据库的计算机不会出现瓶颈。
由于工作是在发布 MessageBox 数据库之间平均分配的,故所有的辅助 MessageBox 数据库应使用相同的硬件。
由于只要主 MessageBox 数据库没有瓶颈问题就可以向外扩展辅助 MessageBox 数据库,因此辅助 MessageBox 数据库可运行在其 CPU 资源少于主 MessageBox 数据库服务器所需资源的计算机上。
另请参阅
向外扩展 BizTalk Server 层
纵向扩展BizTalk Server层
纵向扩展SQL Server层
横向扩展接收主机
扩展处理主机
扩展发送主机
使用 Windows Server 群集为BizTalk Server主机提供高可用性2
横向扩展数据库
聚类分析 BizTalk Server 数据库