在分布式环境中同时启动多个服务器时,可能会无法启动。

 
【现象】

在分布式环境中同时启动多个服务器时,可能会无法启动。

【发生条件】

满足以下所有条件的情况下可能会发生。

・是指具有2个以上节点的分布式结构
・多个服务器同时启动

【原因】

在intra-mart Accel Platform的启动过程中,通过分布式环境中的服务器间进行通信来选出服务器。
服务器的选出处理会在分布式环境中的服务器启动或者停止时触发。
如果同时启动多个服务器,根据处理的进度,可能会多次出发各个服务器上的服务选出处理。
在同时执行多次服务选出处理的情况下,会导致服务器之间的通信暂时增加。
服务器之间的通信是由后台生成线程进行的,如果通信增加会导致后台线程不足,从而导致无法进行通信。

在陷入无法通信的情况下,服务会无法正常启动,从而导致服务器也无法启动。


【解决方法】

可以通过改变服务器启动时间来避免这种情况。

【补充】

除了通过改变服务器启动时间的解决方法之外,还可以通过增加以下设置值来避免这种情况。

・网络设置 (network-agent-config.xml) 的最大通信线程数 (max-threads)
・网络设置 (network-agent-config.xml) 的到达确认/重新发送的最大通信线程数 (max-oob-threads) 。

参考: https://document.intra-mart.jp/library/iap/public/configuration/im_configuration_reference/texts/im_core/network-agent-config/index.html

然而,同时启动多个服务器的操作的情况下,根据应用程序的配置,服务器数量和处理进度的不同,以下的文档中有建议大概标准(服务器数量的两倍),可能会出现不足,
・ https://document.intra-mart.jp/library/iap/public/im_core/im_service_specification/texts/clustering/index.html#label-overview-max-thread-setting

想要获得最佳线程数,需要通过逐渐增加并随时观察现象的发生情况的反复实验的方法。


-- 适用对象 -----------------------------------------------------------------
iAP/Accel Platform/所有更新版本
---------------------------------------------------------------------------------

FAQID:1281
这篇文章有帮助吗?
0 人中有 0 人觉得有帮助
由 Zendesk 提供技术支持