Windows 的服务总线 - 性能和可扩展性

Service Bus for Windows - Performance and Scalability

我们正在为 Windows 1.1 pub/sub 使用服务总线构建一个系统。如果我们在 Azure 上,我们可以使用分区来扩展它。但是,on-premise 版本不支持分区。相反,农场中的所有节点似乎都使用相同的 SQL 服务器作为它们的持久层,这似乎是一个内置的瓶颈。

我们如何才能使 Windows 的服务总线横向扩展?

正如本文所述。

http://www.planetgeek.ch/2014/12/10/service-bus-for-windows-server-high-availability/#

如果一台服务器有多个容器,结构控制器会通过将容器重新分配给特定的消息代理服务来自动重新平衡计算能力。当服务器管理员创建新消息容器或删除现有消息容器时,也会触发此负载平衡机制。可以通过发出一些我们将在下一期中介绍的 PowerShell 命令自动将新服务器加入现有场。

对于 Windows 服务器的存储层服务总线没有开箱即用的解决方案。但是由于底层存储层基于 Sql 服务器,您可以使用 Sql 服务器镜像或最新 Sql 服务器版本的 AlwaysOn 功能。

您使用服务总线 "installers" 来处理计算节点的高可用性。在 Sql 服务器上,您必须推出自己的高可用性。

我公司使用 "AlwaysOn Failover Cluster Instance (FCI)." 因为我们有标准版。请参阅下面的参考资料。

AlwaysOn 是一个更大的保护伞,涵盖两个功能。 AlwaysOn 可用性组 (AG) 和 AlwaysOn 故障转移群集实例 (FCI)。 支持 2 个节点的 FCI。 SQL服务器标准版

无法使用AG功能

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/06651b7f-576c-4703-845f-2a81c5f5173d/which-edition-of-windows-is-required-for-using-sql-2012-always-on-availability-groups?forum=sqlgetstarted*

另见:

https://msdn.microsoft.com/en-us/library/jj193012%28v=azure.10%29?f=255&MSPPError=-2147217396

并且:

https://blogs.technet.microsoft.com/meamcs/2013/12/08/recommended-practices-service-bus-for-windows-server/

建议: 保证高可用(HA):只有服务层和数据库层都HA,才能完全满足HA。服务层 HA 可以通过在环中至少有 3 个服务器来实现。关于数据库 HA,根据您的情况(数据库版本、灾难恢复计划等),有不同的方法可以做到这一点。您可以在此处查看我关于 SQL 2012 Server 的单站点故障转移集群的博客文章。请注意,服务总线 v1.1 最多支持环中的 5 个服务器 确保它是可扩展的:您至少需要 2n 个消息容器,其中 n 是服务总线场环的服务器数量。因此,HA 和可扩展的服务总线实现至少需要 3 个服务器和 6 个消息容器(数据库实例)。