9

似乎我在这个问题上碰壁了,而且没有太多关于此事的文档也无济于事。

我定期向 CRM 运行大型自定义导入作业,所有这些都涉及从自定义客户端调用组织服务以将记录推送到 CRM。记录通过自定义沙盒插件。

导入需要相当长的时间,我正在尝试通过在多台服务器上设置沙盒处理服务来提高导入速度。

这是我到目前为止所尝试的:

  1. 添加另一个具有沙盒处理服务的服务器。

                              / Sandbox Processing Service (crmsb1)
    Client > Front End (crm) <
                              \ Sandbox Processing Service (crmsb2)
    

    使用沙盒处理服务添加另一台服务器没有帮助。前端服务器没有将负载分配到两台服务器上,它继续使用原始服务器。只有在第一个后端服务器上禁用沙盒处理服务时,第二个服务器才开始处理插件请求。(带回第一个在线并没有帮助。)

  2. 具有所有角色的两台负载平衡服务器。

                            / Full Server (crm1)
    Client > IIS ARR (crm) <
                            \ Full Server (crm2)
    

    我完全按照本指南(以及许多其他指南)操作,让 Web 应用程序通过反向代理工作,但未能通过组织服务执行请求。在通过不断更改另一个设置消除了无数 WCF 错误之后,我遇到了这个错误The security context token is expired or is not valid. The message was not processed.,让我认为负载平衡仅适用于 Web 应用程序。

  3. 在多台服务器上手动调用组织服务。

            / Full Server (crm1)
    Client <
            \ Full Server (crm2)
    

    我成功地设置了导入客户端,将导入作业拆分为多个块,并同时为每个块以循环方式调用所有组织服务端点。正如我所希望的那样,这显着加快了导入过程,并让我能够在需要时进一步扩展。

我阅读了有关此问题的所有信息,但我仍然对负载平衡在 CRM 2011 中的工作原理以及可能的配置感到困惑。

两个 指南广泛使用了负载平衡,但没有详细描述如何设置它。

这一切都是在我上线之前在测试环境中设置的。我为所有服务使用了域帐户,设置了正确的 SPN,并且没有使用 SSL。我在 ARR 中尝试了使用和不使用 Client Affinity(它适用于 cookie,所以我假设 WCF 服务没有锁定到一个后端)。

我的问题如下:

  1. 是否可以在主动/主动设置(负载平衡)的多个服务器上设置沙盒处理服务本身(上面的 1),还是仅支持主动/被动 (HA)?

  2. 如果使用多个沙盒处理服务实例的唯一方法是设置多个具有前端和后端角色的服务器(上面的 2 个),有没有办法为组织服务使用负载均衡器,如 NLB 或 ARR ,还是只支持 Web App 的负载均衡器,我必须使用上面的第 3 种方法来负载均衡沙盒处理服务?

4

1 回答 1

4

这是为了回应您对我的文章 ( http://bit.ly/QOEvLF ) 的评论,我也会在那里交叉发布回复:

沙盒服务不能放在负载均衡器后面——或者它们的设计方式不适合这种配置。我相信 CRM 实施指南包含这方面的信息,但沙盒服务将打开一个网络套接字并在特定端口上侦听流量。当沙盒服务成功上线时,它会回调 CRM 以将自己注册为“可用”(因此异步和前端等服务知道它是可用的)。然后,需要隔离(沙盒)的角色将根据需要直接通过该 TCP 通道循环调用沙盒服务。有关这方面的更多信息,请参阅:http ://bit.ly/CRMSetupFAQ 。另请注意,您可能还需要为沙盒服务设置自定义 SPN。

如果您对此还有其他问题,请告诉我 - 谢谢!

肖恩

于 2013-02-04T19:10:34.967 回答