有关平衡 SharePoint 2010 拓扑服务负载的其他信息
有关平衡 SharePoint 2010 拓扑服务负载的其他信息
这篇文章实际上是对 JoshGav 在位于 https://blogs.msdn.com/b/besidethepoint/archive/2010/12/08/load-balancing-the-sharepoint-2010-topology-service.aspx(该链接可能指向英文页面)上的“其他主题”博客中发布的优秀文章的补充。 正如 Josh 敏锐指出的那样,拓扑服务负责将请求负载平衡到不同的服务应用程序终结点;不过,在您将服务应用程序发布到其他服务器场时,需要执行一些操作来平衡拓扑服务本身的负载。 例如,您通常通过类似 https://serverNetBiosName:32844/Topology/topology.svc 这样的 URL 连接到另一个服务应用程序。 很明显,这样做的问题是,如果“serverNetBiosName”不可用,您的代理将无法连接以获取所需服务终结点的 URL。
因此,请首先阅读 Josh 发布的有关此主题的博客! 我在这里添加的内容只是有关我在设置负载平衡时遇到的问题的一些其他说明。 鉴于此目的,我采用 Josh 介绍的第一种方法,即创建一个具有多个使用者备用名称 (SAN) 的新 SSL 证书并将其插入我的服务器场中的每台服务器。 下面是我的说明:
1. 在要创建新 SSL 证书的每台服务器上 创建一个具有 SAN 支持的新 SSL 证书。 该证书应支持三种名称: localhost、服务器的 NetBIOS 名称以及您要使用的负载平衡名称。 SharePoint 中的现有行为是包括 localhost 和 NetBIOS 名称,因此我们在这里采用相同方法并只添加附加的负载平衡名称。
a. 对于那些要在实验室中测试证书并使用 Active Directory 证书服务颁发证书的人员来说,可以将证书配置为支持 SAN 命名。 在运行证书服务的服务器上,从命令提示符运行以下命令:
certutil –setreg policy\EditFlags +EDITF_ATTRIBUTESUBJECTALTNAME2
net stop certsvc
net start certsvc
在执行指示它是否起作用的第一行指令时,您将获得反馈。
b. 启动 MMC 并添加“证书模板”管理单元(您需要在运行 Active Directory 证书服务的服务器上执行此操作)。 单击“证书模板”节点以展开和查看所有模板。 向下滚动到底部并双击“Web 服务器”模板。 单击“安全性”选项卡;对于“已通过身份验证的用户”,在保存更改时,您应选中“允许”列中“注册”旁边的框。 仅在执行此操作后,您才能按照下一步中的说明操作。
c. 有关从 AD 证书服务机构请求包括 SAN 支持的证书的分步说明,请参阅下面的文章: https://technet.microsoft.com/zh-cn/library/ff625722(WS.10).aspx(该链接可能指向英文页面)。 请记住,您必须在运行 Web 应用程序服务的服务器场中的每台服务器上执行此操作。
2. 更改 SharePoint Services Web 应用程序的 SSL 证书: 我使用的是 PowerShell 简单 PowerShell 脚本,它基本上是从 Josh 的文章中获取的。 我将它包括在本文章随附的 zip 文件中。 请记住,您将需要更改证书指纹并在运行 Web 应用程序服务的服务器场中的每台服务器上运行它。 为简化证书指纹的提取过程,我编写了一个名为 GetThumbprints 的小工具,它也包括在本文章随附的 zip 文件中。 此工具仅在我的存储和 SharePoint 存储中的本地计算机证书存储中进行查找。 如果您想使用此工具,请确保您在上述步骤 1 中创建的证书位于其中某个存储。
3. 在所有服务器上为负载平衡名称设置 VIP: 与任何负载平衡服务一样,您将需要一个在池中所有计算机之间共享的虚拟 IP。 根据您的负载平衡解决方案,您或许能够使用现有 VIP 或可能必须创建新 VIP。 确定哪种 VIP 适合您的负载平衡解决方案并在需要时部署新 VIP。 针对我的情况,我使用 Windows Server 附带的网络负载平衡来平衡服务器场内容请求,所以我使用该相同 VIP 进行拓扑服务平衡。 这意味着,根据我的情况,只有我的 Web 前端将获得对已发布服务应用程序的请求。
4. 为负载平衡名称设置负载平衡器和 DNS: 如果您位于包含多台服务器的服务器场中,则应已具有某种负载平衡解决方案。 在您的负载平衡器中为拓扑服务设置负载平衡名称。 自开始使用以来,我只需在 DNS 中为我的负载平衡拓扑服务名称创建一个新的别名 (A) 记录;对于地址,我只是为它提供用于平衡对服务器场发出的 Web 请求负载的相同 VIP。
5. 为 SharePoint 拓扑服务配置负载平衡 Url: 可通过包含两个步骤的过程很好地执行此操作:
a. 首先通过在 PowerShell 中运行 Get-SPTopologyServiceApplication 来获取拓扑服务信息。 将显示服务的 ID 和当前负载平衡 Url。
b. 运行命令 Set-SPTopologyServiceApplication -LoadBalancerUrl <负载平衡名称>;确保按照 Josh 的文章中有关此方面的提示操作。 PowerShell 将返回询问您拓扑服务的标识。 您可以将在上一步中运行 Get-SPTopologyServiceApplication 时显示的 ID 复制到此处。
6. 发布您的服务应用程序: 这里确实没有什么需要添加的重要内容。 首先,我想您只需确保记住执行 https://technet.microsoft.com/zh-cn/library/ff621100.aspx上的“跨服务器场共享服务应用程序”一文中包含的所有步骤。 即使您以前已发布服务应用程序并在服务器场之间使用它们,也要确保记住在已发布服务应用程序“权限”中至少授予您的远程服务器场“完全控制”权限,否则您将获得拒绝访问错误消息。
7. 使用已发布服务应用程序: 除了与上述说明相同的说明外,此处没有什么需要添加的内容 – 确保您明确按照那篇文章中的步骤操作。
这应足够您操作之用了。 建议您首先从较易于验证的方案开始,例如发布和使用 Search Service 应用程序。 然后,即可非常轻松地运行您知道应返回特定文档的查询并在订阅者服务器场中试用它。
再次感谢 Josh 发布的文章;他的文章内容充实且十分有用,本文应只是帮助充实某些细节内容。
这是一篇本地化的博客文章。请访问 Additional Info on Load Balancing the SharePoint 2010 Topology Service 以查看原文