负载平衡MS Dynamics CRM 2011沙盒处理服务

Yon*_*ona 9 iis wcf load-balancing nlb dynamics-crm-2011

好像我正在用这个打墙,没有太多关于此事的文件也无济于事.

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

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

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

  1. 使用沙盒处理服务添加另一台服务器.

                              / Sandbox Processing Service (crmsb1)
    Client > Front End (crm) <
                              \ Sandbox Processing Service (crmsb2)
    
    Run Code Online (Sandbox Code Playgroud)

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

  2. 两个具有所有角色的负载均衡服务器

                            / Full Server (crm1)
    Client > IIS ARR (crm) <
                            \ Full Server (crm2)
    
    Run Code Online (Sandbox Code Playgroud)

    我将本指南(以及许多其他人)写入了这封信,并让Web应用程序通过反向代理工作,但是通过组织服务执行请求失败了.通过不断更改另一个设置消除了无数的WCF错误后,我遇到了这个错误,The security context token is expired or is not valid. The message was not processed.让我认为负载平衡只适用于Web App.

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

            / Full Server (crm1)
    Client <
            \ Full Server (crm2)
    
    Run Code Online (Sandbox Code Playgroud)

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

我阅读了有关此事的任何内容,但我仍然对CRM 2011中的负载均衡如何工作以及可能的配置感到困惑.

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

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

我的问题如下:

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

  2. 如果使用多个Sandbox处理服务实例的唯一方法是通过设置具有前端和后端角色的多个服务器(上面的2个),是否有任何方法可以为组织服务使用负载均衡器,如NLB或ARR ,或者是仅支持Web App的负载均衡器,我必须使用上面的第3种方法对沙盒处理服务进行负载均衡?

小智 4

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

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

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

肖恩