我们需要为Sitecore设置负载平衡的CM环境 - 主要用于故障转移目的,但也适用于负载可能过重的情况。我们将有两台服务器。我正在浏览扩展指南,他们提到在负载均衡的CM环境中,有一个服务器专用于发布。该评论指出它主要用于性能,但我听到有人说除非你设置专用的发布实例,否则发布队列不会同步。我想我理解这一点,基于sitecore发布队列的工作原理,但如果依赖其中一个服务器,那么拥有负载均衡的CM环境有什么意义呢?虽然它不是一个“站点向下”的依赖,但它依赖于它 - 是否有办法解决这个问题?
修改
我在这里有一些答案,都指出这可能是性能问题或死锁问题,所以我想我的真正问题是,如何为专用发布实例进行故障转移,因为现在单一出版实例将成为失败的中心点。
答案 0 :(得分:2)
我理解的主要原因是同步和处理事件队列。 CM服务器将其本地事件发送到发布服务器,发布服务器将依次处理这些事件,发布和触发远程事件。如果两个服务器都能够发布,则事件队列将极难同步,因为如果没有专用的发布服务器,两个CM服务器几乎可以同时触发两个发布事件。
性能也是一个考虑因素,但如果您有一个发布服务器,情况也是如此。内容编辑在运行时会注意到可用性问题。这就是为什么建议理想情况下3服务器CM设置最好的原因:2个CM实例和1个发布实例,不执行任何创作。这也允许你(在Sitecore 7.2上)到setup parallel publishing,但这并不总是现实的,你仍然依赖于其中一个服务器,正如你所说的那样。但考虑到事件队列的问题,即使你有10台服务器,我认为你在某处需要这种依赖。
我最近在Configure a authoring server as publishing instance上阅读了这篇旧帖子,其中有一些非常好的信息。
我只是阅读了这篇文章,希望有更多实践经验的人会很快回答,但是当我一直在思考这个问题时,我得出的唯一结论就是"错误&#34 ; CM实例失败,然后必须更新Publishing.PublishingInstance
设置。也许准备好补丁配置(.disabled),以便在需要时部署/重命名它,并将其作为灾难恢复计划中的一个步骤。显然需要一些人工干预,正如你所说,它不是一个"站点下来"依赖。对于我所做的大多数项目来说,这是可以接受的,那种情况下的前端服务器始终是优先考虑的事项。
答案 1 :(得分:0)
为了清楚起见,如果您对CM环境进行负载平衡,则必须仅配置该环境中的一个实例进行发布。我不记得原因的确切细节,但这可能是为了提高性能,消除死锁,最大限度地减少冗余发布混乱和缓存清除,以及其他原因。该实例在处理来自CMS用户的HTTP请求的余额中,但它是该环境中执行发布的唯一实例。我同意如果发布实例失败,则必须更改设置,尽管我必须查看实现以查看是否有某种方法可以回退或应用逻辑来确定发布实例而不是仅使用该设置。
这与专用发布实例不同,后者位于CM环境中但不在余额中。这适用于具有大量发布的场景,可以从天平中的实例中卸载发布开销。
答案 2 :(得分:0)
引自Sitecore“Scaling Guide”文档,第27页
发布CM实例仍然可以是创作实例,或者它 也可以用作全权负责的专用实例 出版。后一种选择可用于分离 出于性能原因从创作CM实例发布, 部署策略或其他考虑因素。发布操作 可以从环境中的任何CM实例启动。他们是 排队,然后发布实例将它们作为序列
进行选择
所以,主要是为了性能,部署和其他考虑,这也不是'负载平衡'设置,因为sitecore称之为多实例设置,这意味着作者将分别登录每个实例,而不是让负载平衡服务器确定要使用的CM实例。