Linux系列學習精要(四)

  • 2019 年 10 月 6 日
  • 筆記

一、在雲計算中,應用的集群實現的初級方案–負載均衡如何實現?

隨著互聯網訪問用戶的不斷增長,單台伺服器打遍天下的時間將很快過去,能力再強的伺服器也會面臨天花板。因此,採用多台廉價X86伺服器對外同時提供服務,採用負載均衡進行伺服器的業務調度,成為當前應用集群的實現必然之路。如下圖。

負載平衡器對外提供一個IP地址,隱藏內部真實伺服器的IP地址,通過多種方式進行真實伺服器能力的調度。

1、輪詢演算法

負載平衡器通過將業務請求輪流發送到不同的真實伺服器,每台真實伺服器獲得的業務請求均衡,該方式默認各真實伺服器的能力相同,未考慮各真實伺服器的真實業務當前負載。

2、加權演算法

如果後台的真實伺服器的能力不相同,那麼可以為能力強的伺服器分配較高的權重,相應收到的業務請求流量也會較多。

3、最小連接數演算法

負載平衡器根據後台不同真實服務的當前連接數,自動平衡負載,為連接數較少的機器填補業務流量,達到均衡負載的作用。

不同的負載平衡器支援的平衡演算法還很多,如源地址散列等,最終目標都是讓不同的業務請求能否根據業務需求放置到最適合的真實伺服器中進行應用執行。

二、在雲計算中,資料庫的集群實現的初級方案–主備、主主如何實現?

應用的集群相應好做,因為應用程式伺服器中未存儲用戶的數據資訊,所有的資訊均存儲在資料庫中,經常負載均衡器任意增減應用程式伺服器的數量均不會對業務造成影響。

但資料庫伺服器中放置了用戶的真實數據,任意增減應用程式伺服器會對業務帶來真正的影響。那如何實現資料庫的集群呢?在業內有以下幾種方式。

1、主主模式

以Mysql為例,通過分庫、分表的模式將資料庫伺服器實現集群,多台伺服器同時支撐一個資料庫實例的運轉。單台資料庫伺服器通過數據多副本、或者主備的模式,實現單台資料庫伺服器的穩定性提高。

2、主備模式

以Mysql為例,將單台資料庫伺服器的數據實現雙寫,主用伺服器實同讀寫,備用伺服器僅作為主用伺服器故障時替換使用。

在業內,以Mysql為例,可以通過Mysql Proxy實現分庫分表的主主模式,通過Keepalived開源程式實現主備模式。