Hazelcast虽然有很多优秀的特性,但是如果没有掌握好原理和配置,难免会遇到各种问题。
问题一.
集群节点无反应。
原因是Hazelcast集群在默认配置下,线程耗尽,整个集群进入假死状态。默认配置,并发15线程,集群就死掉。
解决方式修改默认配置项,扩大线程池。
<hz:executor-service name="default" pool-size="100" queue-capacity="30"/>
问题二.
集群反应超慢。但是未死机。停止集群节点变成单机后,反应反而变快。
原因:Hazelcast集群维持集群心跳需求良好的网络带宽,当时生产服务器ping值在50ms以上,属于网络不良。所以集群反应超慢。停止集群节点后,反应反而变快。
解决方式,修改集群的配置,变成单节点模式。
<hz:network port="${defaultPort}" port-auto-increment="true">
<hz:join>
<hz:multicast enabled="false"/>
</hz:join>
</hz:network>
但是同时需要配置前端为nginx集群。保证可用性。
问题三,内存耗尽问题
待分析。