我遇到的情況是,我目前有3個memcached實例在3個不同的服務器上運行。我的應用程序目前位於同一個3個不同的節點上。所有的應用程序服務器都知道所有的memcached服務器,但是如果其中一個出現故障,我無法注意到。 這個想法是將memcached服務器移動到自己的節點。使用memcached存儲桶掌握Couchbase
我已經開始考慮CouchBase作爲解決這個問題的替代方案,但不確定它會工作。
它會工作嗎,以便我在每個應用程序節點上都有一個CouchBase集羣,然後將它們連接到不同的memcached服務器,然後CouchBase將監視並知道哪些存活?
在這種情況下,如果某個memcached實例關閉,那麼當前綁定到memcached實例的應用程序如何知道如何獲取數據?或者是CouchBase會成爲中間人關心在哪裏存儲它?
謝謝,關於收集所有節點的信息的一個問題。這是否意味着如果我有一個帶有e.x 2 couchbase服務器的集羣,只需連接其中一個服務器,就可以使對象瞭解這兩個節點?如果提供的服務器出現故障,它是否會嘗試從其他節點獲取?只是想知道當couchbase服務器出現故障時會發生什麼情況,而不僅僅是memcached存儲桶出現故障。 – Nitro 2012-04-16 09:04:13
因此,初始通信獲取vbuckets的列表,但它會檢查更新vbucket信息的位置。通常最好的辦法是設置一些像nginx這樣的虛擬IP接口或代理,讓您可以在所有節點上進行循環負載平衡。這樣,如果其中一個節點出現故障,您仍然可以連接並獲得這些vbucket更新,而無需更改代碼以支持故障切換。除此之外,是的。只要它與Couchbase SDK交談初始節點,它就會知道所有其他服務器並相應地分配流量。 – Drahkar 2012-04-18 16:21:48