我指的是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节点的多个连接,以及潜在的临时端口耗尽?