2012-05-31 25 views
1

我有一組服務器,當前同時使用memcachedrepcached並排(在不同的端口上偵聽)。 memcached服務用於存儲不需要共享的本地數據。 repcached實例用於允許成對的服務器進行協作。Couchbase作爲memcached + repcached替換?

當我發現Couchbase我真的很興奮,因爲它看起來像它會允許我:

  1. 使一些數據持久
  2. 分享兩個以上節點
  3. 離開我的大部分代碼 - 因爲它使用memcached API

因此,我安裝了Couchbase,但遇到了一個問題 - 它看起來沒有辦法在同一臺服務器上安裝兩個羣集。我想要一個不與任何其他服務器共享的羣集,以及另一個與其他服務器共享的羣集。

是的,我可以爲Couchbase設置幾個專用服務器來創建不同的集羣,但是我有很多CPU + RAM可以在當前正在運行memcached + repcached的服務器上備用,所以我寧願只更換這些服務與Couchbase。

是否可以在同一主機上運行兩個Couchbase實例?我意識到我不得不改變周圍的一些港口。我只是沒有看到有人在討論做這樣的事情,所以我認爲答案是「不」......但我不得不問,因爲它看起來像Couchbase將完美滿足我的需求。

如果這不起作用,那麼我會對任何替代建議感興趣。例如,我有一個想法是使用Memcached + MemcacheDB來模擬持久非共享Couchbase集羣。但是,我不喜歡MemcacheDB不支持過期記錄這一事實,我寧願不必每個月編寫一個例程來刪除數百萬條記錄(然後懷疑性能是否會隨着時間的推移而降低)。

任何想法將不勝感激。 :-)

回答

2

這裏最好的解決方案可能是運行一個Couchbase實例並創建一個memcached存儲桶和一個Couchbase存儲桶。 memcached存儲桶不具有持久性,並且功能與memcached完全相同。另一個桶將具有持久性並支持memcached api。您可以在單個Couchbase服務器中創建儘可能多的存儲桶。

您的其他選擇是虛擬化並在每個虛擬機上運行Couchbase服務器。

+0

感謝您花點時間分享您的想法。當你說memcached存儲桶「功能完全像memcached」時,你是否說它不會跨越整個集羣? 在單獨的虛擬機上運行第二臺Couchbase服務器的想法也是我曾經想到的,但希望有一個更簡單的解決方案。 – Jeremy

+2

如果這是您的要求,memcached存儲桶不提供複製。它們將跨越整個集羣,但是如果您將另一臺服務器添加到集羣,它將爲您的memcached存儲桶添加更多內存。例如,如果您有3個服務器,其中一個memcached存儲桶的大小爲2GB,那麼您的羣集將爲該存儲桶提供6GB的可用存儲空間。如果您添加另一臺服務器,那麼您的羣集將有8GB可用。另外,如果您使用Couchbase SDK,則客戶端會識別出已添加另一臺服務器,並立即開始使用它。 – mikewied