2016-11-10 27 views
0

在情況下,我遇到了Hazelcast設置(Hazelcast嵌入在Payara中)的多次中斷,此時流程的非hazelcast工作負載導致GC開銷錯誤。當其停止響應實際請求時聲明會員死亡

在那段時間內,Hazelcast對心跳做出了迴應,但是並未響應獲取數據的實際請求。這會導致系統停滯,即使數據的備份可用。

因此,我想詢問是否有一種方法可以在羣集中啓動成員,如果它停止響應其他類型的請求,而不僅僅是心跳。

+1

這是更多的一個payara問題。我猜想有可能啓動Hazelcast客戶端(而不是嵌入式成員,這通常是推薦的部署策略),並使用單獨的Hazelcast集羣,這正是您提到的原因,GC。如果啓用了「從備份讀取」功能,並且僅在成員具有本地備份時纔會讀取備份,則只會讀取備份,但不會向其他成員請求備份! – noctarius

+0

Yes獨立羣集是我將要追求的方向,只有Devoxx的Hazelcast展位的人員建議在此問一問,將這種行爲作爲功能是否是個好主意。 – pdudits

回答

1

您可能要考慮在Payara服務器實例上的「Lite」模式下使用hazelcast。如果您在可能面臨GC過多的實例上打開「精簡」模式,這些實例不應影響Hazelcast性能,因爲這些節點不會存儲任何用於hazelcast集羣的數據。

但是,有必要使用額外的Full實例來補充此解決方案,這將保留數據。這些額外的實例不應運行您的任何應用程序,並且只能作爲單獨的hazelcast節點運行。我的博客文章中的Focused on throughput and performance部分描述瞭如何使用「Lite」Payara羣集成員(由Lite hazelcast成員支持)的一些場景。總結 - 如果您將某些節點轉換爲「精簡版」,併爲每個「精簡版」節點添加一個僅由自身運行且沒有部署的應用程序的額外「完整」節點,則可以將您的應用程序和hazelcast到單獨的JVM中。作爲「Lite」節點且不包含hazelcast羣集數據的JVM上的GC不應影響Hazelcast性能。

相關問題