天天看點

公有雲項目方案咨詢中一些常見問題(二)

一、使用者提出采用域名DNS設定進行不同伺服器的業務負載均衡是否可行?

使用者拟在營運商租用了多台的伺服器,都為提供業務交易查詢的web伺服器。使用者提出準備使用自購的dns服務進行單個域名的多個ip位址設定,已完成業務交易查詢的web伺服器的負載均衡。粗一聽,好像挺完美的方案,但實際不可行。

原因1:伺服器down機,DNS是不知道的,而修改DNS完成全網同步,一般需要三小時以上。原因2:DNS一般是輪詢機制,無法根據業務真實負載進行均衡。原因3:DNS存在本地會話保持,如果是需要身份驗證的網站,在不修改軟體構架的情況下,這點是比較緻命的。因為DNS解析無法将驗證使用者的通路持久配置設定到同一伺服器。雖然有一定的本地DNS緩存,但是很難保證在使用者通路期間,本地DNS不過期,而重新查詢伺服器并指向新的伺服器,那麼原伺服器儲存的使用者資訊是無法被帶到新伺服器的,而且可能要求被重新認證身份。

該問題的需求處理建議如下:1、使用智能DNS(GSLB)完成向不同營運商的客戶傳回不同的IP位址。同時智能DNS具有健康狀态檢測功能,當解析出的IP位址不可達時,會将其它可用的IP位址傳回。2、在智能DNS下啟用F5彈性負均衡機制。3、在F5的SLB裝置下還可以用啟Ngnix的緩存服務、多伺服器均衡機制。

公有雲項目方案咨詢中一些常見問題(二)

感覺挺複雜,但在一般項目中,F5(SLB)+多台伺服器已足夠了。:)

二、我的交易系統受到部分城市使用者的惡意攻擊,想進行阻斷,天翼雲SLB能不能幫到我?

這是客戶的真實需求。在上雲之前,使用者采用在F5中将一段惡意使用者的IP位址段設定到F5的黑名單中,阻斷通路;或在F5中強制将業務流量指向其它的伺服器,以避免對正常使用者的通路。但上天翼雲後,SLB不再提供類似功能,如何解決。

我的解決辦法其實需要得到客戶的幫助,方案為SLB+Ngnix,在Ngnix中進行業務分流。這樣實施後,有可能誤傷一些真實使用者,但至少提供了服務,而不是伺服器被全部拖垮。

如:ngnix中的代碼

set $flag = 0;

if ($http_user_agent ~* "spider"){

set $flag "1";

}

if ($flag ="0"){

//代理至正常叢集

} else if ($flag ="1"){

//代理至低等級的叢集

}

公有雲項目方案咨詢中一些常見問題(二)

三、在兩台實體伺服器下挂同一個共享磁盤,實作資料庫的共享是否可行?

這也是客戶的真實解決方案,但被我們否掉。客戶未使用Oracle Rac等叢集管理軟體,而準備在共享磁盤中劃兩個分區,不同的伺服器資料庫檔案寫入不同的分區中,不同分區的資料庫同步采用ADG方案。

聽起來沒有什麼問題。但真實的實踐中,已問題明顯出現。1、作業系統存在緩存,另一台伺服器可能看不到寫入的資料。在該案例場景中應不會出現該問題。2、更緻命的問題是,如果沒有叢集軟體的協助,兩台伺服器寫入的資料可能會存在互相覆寫的情況。

是以,該問題最後解決辦法還是走回最簡單的辦法,不同伺服器挂不同的硬碟。