我们正在使用 Service Bus for Windows 1.1 为 pub/sub 构建一个系统。如果我们在 Azure 上,我们可以使用分区来扩展它。但是,本地版本不支持分区。相反,场中的所有节点似乎都使用相同的 SQL Server 作为其持久层,这似乎是一个内置瓶颈。
我们可以做些什么来让 Windows 服务总线横向扩展?
我们正在使用 Service Bus for Windows 1.1 为 pub/sub 构建一个系统。如果我们在 Azure 上,我们可以使用分区来扩展它。但是,本地版本不支持分区。相反,场中的所有节点似乎都使用相同的 SQL Server 作为其持久层,这似乎是一个内置瓶颈。
我们可以做些什么来让 Windows 服务总线横向扩展?
正如本文所述。
http://www.planetgeek.ch/2014/12/10/service-bus-for-windows-server-high-availability/#
如果服务器有多个容器,Fabric 控制器会通过将容器重新分配给特定的消息代理服务来自动重新平衡计算容量。当服务器管理员创建新的消息容器或删除现有的消息容器时,也会触发这种负载平衡机制。新服务器可以通过发出一些 PowerShell 命令自动加入到现有场中,我们将在下一部分中介绍这些命令。
对于存储层,Windows Server 服务总线没有开箱即用的解决方案。但是因为底层存储层是基于 Sql Server 的,所以您可以使用最新 Sql Server 版本的 Sql Server 镜像或 AlwaysOn 功能。
您使用服务总线“安装程序”来处理计算节点的高可用性。在 Sql Server 上,您必须推出自己的高可用性。
我的公司使用“AlwaysOn Failover Cluster Instance (FCI)”。因为我们有标准版。请参阅下面的参考资料。
AlwaysOn 是一个更大的保护伞,涵盖两个功能。AlwaysOn 可用性组 (AG) 和 AlwaysOn 故障转移集群实例 (FCI)。支持 2 个节点的 FCI。不能在 SQL Server 标准版中使用 AG 功能
另见:
https://msdn.microsoft.com/en-us/library/jj193012%28v=azure.10%29?f=255&MSPPError=-2147217396
和:
建议:确保高可用(HA):只有在服务层和数据库层都是HA的情况下才能完全满足HA。服务层 HA 可以通过在环中至少有 3 台服务器来实现。关于数据库 HA,根据您的情况(数据库版本、灾难恢复计划等),有不同的方法可以做到这一点。您可以在此处查看我关于 SQL 2012 Server 的单站点故障转移集群的博客文章。请注意,服务总线 v1.1 在环中最多支持 5 个服务器 确保它是可扩展的:您至少需要 2n 个消息容器,其中 n 是服务总线群环的服务器数量。因此,HA 和可扩展的服务总线实现至少需要 3 个服务器和 6 个消息容器(数据库实例)。