我打算使用Hazelcast進行Http會話聚類。我閱讀了這個文檔 - http://hazelcast.org/docs/latest/manual/html/httpsessionclustering.html,我明白我需要設置com.hazelcast.web.WebFilter過濾器,並且此過濾器將裝飾原始HttpSession以將會話數據存儲在Hazelcast緩存中。修改其屬性時是否需要鎖定HazelcastHttpSession實例?
我的問題是我是否需要在HazelcastHttpSession實例上放置一個鎖(分佈式鎖),當我修改它的屬性時,就像我爲原始HttpSession實例所做的那樣。
如果我要鎖定HazelcastHttpSession實例,我打算使用Hazelcast分佈式鎖定,獲取分佈式鎖定的關鍵是Session id。請參閱我的示例代碼:
HazelcastInstance hz = Hazelcast.newHazelcastInstance(cfg);
Lock session_lock = hz.getLock(SessionID);
session_lock .lock();
try {
// Modify session data
} finally {
session_lock .unlock();
}
我的應用程序可能有10K活躍用戶在同一時間,因此應用程序可能需要在同一時間從Hazelcast獲得10K分佈式鎖實例。
我的問題是榛可以一次創建太多(10K)分佈式鎖嗎? Hazel分佈式鎖的任何限制?文檔http://hazelcast.org/docs/latest/manual/html/lock.html沒有提及任何內容。
謝謝你的任何意見。
謝謝Noctarius。如果我們想在一個鎖定事務中執行諸如getAttribute,setAttribute之類的調用,我們仍然需要一個分佈式鎖。是對的嗎? – Loc
什麼是鎖定交易? – noctarius
鎖定跨getAttribute和setAttribute等一些調用。 – Loc