Tomcat-1(t1)將session優先備份在運行在令一臺機器上的memcached-2(m2)上面,僅當m2失效的時候,t1纔會將sessin存儲在m1上面(m1是t1的備份節點)。這樣當machine1(t1和m1存在在這臺機器上)掛掉的時候,session也不會丟失.node
<t1> <t2> . \ / . . X . . / \ . <m1> <m2>
在配置過程當中,只須要指定備份節點(failover=n1),因此存儲的主節點(primarily)採用隨機存儲json
When a new session is created the memcached-session-manager selects the memcached node randomly.
而後在session中增長存儲節點的名字:<sessionId>-<node>[.<jvmRoute>],如「602F7397FBE4D9932E59A9D0E52FE178-n1」,或者602F7397FBE4D9932E59A9D0E52FE178-n1.tomcat0。tomcat
不須要設置failover節點,第一次訪問的時候,會隨機建立一個節點,而後將其邏輯上的下一個節點做爲備份節點。session
一些節點分配的例子:dom
Example machines m1, m2 tomcats t1, t2 on m1, t3, t4 on m2 memcached nodes n1 on m1, n2 on m2 -> failoverNodes for t1 and t2 = n1, failoverNodes for t3 and t4 = n2 Example machines m1, m2, m3, m4 tomcats t1 on m1, t2 on m2, t3 on m3 and t4 on m4 memcaches n1 on m1, n2 on m2, n3 on m3, n4 on m4 -> t1.failoverNodes = n1, t2.failoverNodes = n2, t3.failoverNodes = n3, t4.failoverNodes = n4 Example machines m1, m2, m3, m4 tomcats t1 on m1, t2 on m2 memcacheds n1 on m3, n2 on m4 -> t1.failoverNodes and t2.failoverNodes = <empty> (not needed in this case)
支持多種序列化模式:kryo-serializer,javolution-serializer,xstream-serializer,flexjson-serializer 和自定義序列化模式,須要引入對應的jar包jvm