2011-02-10 76 views
4

我有一個membase主機集羣,我也有一套moxi進程,運行在不同的盒子上,全部配置爲與這個集羣交談。Spymemcached,配置爲故障轉移

我的客戶端正在使用spymemcached,我正在嘗試配置一個MemcachedClient,以便了解所有可用的moxi進程。這樣,如果其中一個進程死亡,我希望spymemcached使用不同的moxi並不斷向羣集發送數據。

理想情況下,所有這些都應該在不丟失隊列信息的情況下完成。

我正在玩兩個淘氣過程,但無法讓它做我想做的。

我看過http://groups.google.com/group/spymemcached/browse_thread/thread/d33ca15c0a928d37#http://groups.google.com/group/spymemcached/browse_thread/thread/f7cc37fc509b70a6/cbb967e824a0ab04?hl=en&lnk=gst&q=redistribute#cbb967e824a0ab04沒有運氣。

有人可以告訴我,如果這是在spymemcached可行嗎?如果是這樣,我應該如何配置它?

我在玩ConnectionFactoryBuilder的不同配置。

ConnectionFactoryBuilder builder = new ConnectionFactoryBuilder(); 
builder.setFailureMode(FailureMode.Redistribute); 
builder.setProtocol(Protocol.BINARY); 
builder.setLocatorType(Locator.CONSISTENT); 

builder.setMaxReconnectDelay(1); 
builder.setTimeoutExceptionThreshold(2); 

ConnectionFactory cf = builder.build(); 
+1

這是什麼,你不喜歡?爲什麼你覺得你需要spymemcached和moxi(後者是一個工具,像前者那樣工作,你沒有長壽的過程)? – Dustin 2011-02-10 17:09:36

回答

0

我不確定,但不能在spymemcached配置中指定多個moxi服務器嗎? 據我所知,moxi支持memcached協議,spymemcached允許與多個memcached服務器通話。這意味着spymemcached會根據一致的哈希算法選擇一個moxi服務器,這並不重要,因爲最終memcached服務器將由moxi進程選擇。如果其中一個moxi進程死了,spymemcached會自動切換到另一個moxi進程。