sequoia負載均衡

2021-04-15 07:30:27 字數 1254 閱讀 4464

控制器之間客戶端連線的分配

當客戶端程式連線虛擬伺服器的時候,sequoia 聯結器使用sequoia url連線到控制器。sequoia url包含了乙個所有要用到的控制器的ip列表。預設的,sequoia 控制器監聽25322 埠。

如果當前選擇的控制器失敗了,將會自動從sequoia url定義的列表中重新取乙個新的出來。

新的連線,根據預定義的負載均衡策略(隨機,輪詢,順序),連線到乙個控制器上。所有的屬於這個連線的請求都會被傳送到同乙個控制器,但是這個控制器會把這些請求在它下面的後端之間進行的負載均衡。

一旦連線建立,乙個針對某個虛擬資料庫的使用者名稱和密碼的組合,會連同資料庫的名字一起被傳送到控制器的驗證管理器中進行檢查。

在後端之間分配唯讀請求

在後端之間進行負載均衡,有下面幾種可選方案:

處理sequoia中的客戶端連線上下文

客戶端連線可以分為下面兩種:

這兩種連線都是sequoia 分配的:如果沒有連線可用,控制器會等待連線池提供可用的連線。

使用持久化連線的典型例子

這裡有一些持久化連線用法的典型例子:

使用持久化連線的相關問題

因為下面的原因,不推薦使用sequoia 的持久化連線。

減低系統效能;

開啟和關閉持久化連線是在集群範圍內執行的,因此會降低系統效能;

會導致禁止後端或關閉資料庫失敗;

後端只有在所有的持久化連線都關閉後才能被disable。

每個連線的開啟/關閉都會被記錄到recovery log中。當乙個checkpoint需要被新增到recovery log中時(比如在資料庫庫備份期間要disable掉後端),sequoia 必須等當前開啟的所有持久化連線都關閉完之後才能執行,因為連線的上下文不會被記錄。

而且,虛擬資料庫也只能在所有的後端都被disable掉之後才能關閉。所以,如果應用無限期的保持開啟連線池中的連線的話,虛擬資料庫將無法正常關閉。

那麼在使用持久化連線時怎麼防止這些情況發生呢。

上述失敗可能發生如果我們這麼使用sequoia 的話:

確保你的應用顯式的關閉了它們的連線。特別要檢查連線池和連線重用計畫。

如果你使用像jboss那樣的應用伺服器。你必須配置連線池,因此沒用的連線被續約並按照一定的規則關閉掉(idle-timeout引數在虛擬資料庫的配置檔案中)。

注意:

使用sequoia時,不推薦同時使用持久化連線和連線池。因此,如果你沒用持久化連線,你應該把他們disable掉。

nginx 負載均衡 Nginx負載均衡策略

nginx提供的負載均衡策略有2種 內建策略和擴充套件策略。內建策略為輪詢 預設 加權輪詢,ip hash,第三方。upstream mysvr1 輪詢 每個請求按照時間順序逐一的分配到每乙個後台伺服器上。如果某台伺服器宕機了,將會自動的剔除宕機的服務。nginx預設就是輪詢其權重都預設為1,伺服器...

軟負載均衡和F5負載均衡(硬負載均衡)區別

分割線,以下是原文內容 負載均衡 建立在現有網路結構之上,它提供了一種廉價有效透明的方法擴充套件 網路裝置 和伺服器 的頻寬 增加 吞吐量 加強網路資料處理能力 提高網路的靈活性和可用性。負載均衡,英文名稱為load balance,其意思就是分攤到多個操作單元上進行執行,例如web 伺服器 ftp...

負載均衡(一)為什麼需要負載均衡

通常我們專案開發都是在tomcat上完成的,當然這樣是有優點的,比如就是開發簡單,部署簡單,但是單個的tomcat有時候有時候就會有問題,它的容量有峰值,大概在300之間,可以用測試軟體jemeter進行壓力測試。而且如果tomcat出現問題的話,那麼整個專案就會出現故障,這是不可容忍的 單點故障,...