我指的是this文檔的應用程序堆棧部分中的Couchbase服務器,概述了Couchbase羣集的所需架構。Couchbase羣集故障轉移架構
我注意到圖中的5個Couchbase節點都有相應的Web服務器。我也知道Couchbase SDK旨在建立到單個節點的連接,併爲所有請求保留該連接,但故障切換事件除外。
首先,我想確認圖中5個Web服務器中的每一個都將建立到5個Couchbase節點之一的單個連接。我認爲會導致1:1的關係;每個Web服務器都將連接到相應的Couchbase節點,從而不會有2個Web服務器建立到同一個Couchbase節點的連接。
如果是這種情況,那麼在發生Couchbase節點故障時,假設該節點是不可恢復的,我應該刪除相應的Web服務器嗎?這可能看起來不直觀,但這裏的情況是我的理解:
- Couchbase節點#1死
- Web服務器#1(連接到Couchbase節點1#)建立到下一個可用節點的連接, Couchbase節點#2(大多數SDK處理這個,FAIA)
- Couchbase節點#2現在有2個已建立的連接;從Web服務器#2(其對應的服務器)和現在也從網絡服務器#1(其對應Couchbase節點是死的)
我擔心的是我已經注意到短暫端口耗盡問題與Couchbase Server中,建立更多的時候而不是1個連接到單個節點。 This generally results in client timeouts:
獲取http://0.0.0.0:8091/pools:撥打TCP 0.0.0.0:8091:操作超時 出
再次,在此基礎上,當Couchbase節點死亡是否也應該刪除相應的Web服務器,以避免到同一個Couchbase節點的多個連接,以及潛在的臨時端口耗盡?