將Web服務(wù)從單體架構(gòu)演進(jìn)為彈性高可用架構(gòu)
隨著業(yè)務(wù)增長(zhǎng),單體架構(gòu)的Web服務(wù)的業(yè)務(wù)負(fù)載也逐漸增加,導(dǎo)致系統(tǒng)穩(wěn)定性降低。此時(shí),您可以將單體架構(gòu)演進(jìn)為彈性高可用架構(gòu),通過伸縮組水平擴(kuò)展服務(wù)器來分?jǐn)傌?fù)載,從而增強(qiáng)系統(tǒng)穩(wěn)定性和響應(yīng)速度。
為什么使用彈性高可用架構(gòu)?
單體架構(gòu)的問題一種常見的單體架構(gòu)如圖所示,所有的資源部署在一臺(tái)ECS實(shí)例中,用戶通過域名(或IP)直接訪問到單一服務(wù)器中的服務(wù)。該架構(gòu)存在兩方面的問題:
| 彈性高可用架構(gòu)特點(diǎn)彈性高可用架構(gòu)如圖所示。用戶通過域名訪問業(yè)務(wù)服務(wù)集群時(shí),請(qǐng)求會(huì)通過負(fù)載均衡器,分?jǐn)偟郊旱母鱾€(gè)業(yè)務(wù)服務(wù)實(shí)例上的業(yè)務(wù)服務(wù)進(jìn)行處理。該架構(gòu)特點(diǎn)如下:
|
如何將單體架構(gòu)演進(jìn)為彈性高可用架構(gòu)?
如圖所示,將左側(cè)單體架構(gòu)演進(jìn)為彈性高可用架構(gòu)需要經(jīng)歷兩個(gè)階段。
階段一:分離數(shù)據(jù)存儲(chǔ)與業(yè)務(wù)邏輯
由于彈性高可用架構(gòu)是以ECS實(shí)例為單元進(jìn)行復(fù)制,因此在實(shí)施彈性高可用架構(gòu)時(shí),需要確保ECS實(shí)例(包含其中的業(yè)務(wù)服務(wù))的數(shù)據(jù)存儲(chǔ)與業(yè)務(wù)邏輯分離,即無狀態(tài)化,避免因橫向擴(kuò)展實(shí)例而導(dǎo)致的數(shù)據(jù)一致性問題。
例如,在復(fù)制ECS實(shí)例時(shí),應(yīng)確保不會(huì)復(fù)制數(shù)據(jù)庫,從而防止集群使用多個(gè)不同的數(shù)據(jù)源。通過將數(shù)據(jù)存儲(chǔ)從ECS中抽離出來,確保所有實(shí)例共享同一數(shù)據(jù)源,保持?jǐn)?shù)據(jù)的一致性。
如果在您的實(shí)際業(yè)務(wù)中,出現(xiàn)了以下幾種常見的情況時(shí),您需要評(píng)估該情況是否會(huì)對(duì)您的業(yè)務(wù)造成影響,從而改進(jìn)業(yè)務(wù)架構(gòu)。
情況1:在實(shí)例中部署了MySQL、Redis等服務(wù)。
如果您的ECS實(shí)例中包含數(shù)據(jù)庫等有狀態(tài)服務(wù),在復(fù)制該ECS橫向擴(kuò)展時(shí),會(huì)造成您的集群存在多個(gè)數(shù)據(jù)源,造成數(shù)據(jù)不一致等問題。遇到此情況時(shí),您可以考慮抽離MySQL或者Redis等有狀態(tài)的服務(wù)單獨(dú)部署。
此外,您還可以直接將自建MySQL或Redis遷移到云數(shù)據(jù)庫RDS,相比自建數(shù)據(jù)庫,RDS更加安全可靠、運(yùn)維更加方便,自建數(shù)據(jù)庫遷移上云,請(qǐng)參見自建數(shù)據(jù)庫遷移到云數(shù)據(jù)庫。
情況2:在業(yè)務(wù)服務(wù)中用到了Session技術(shù)。
如過您在業(yè)務(wù)服務(wù)中使用到了Session技術(shù)用于保存用戶登錄狀態(tài),擴(kuò)展服務(wù)后,會(huì)導(dǎo)致服務(wù)副本之間的登錄信息(Session信息)不共享,從而造成用戶頻繁被彈出。此情況,您可以考慮單獨(dú)部署Redis做共享Session,來解決此問題。
情況3:某些不能同時(shí)執(zhí)行的定時(shí)任務(wù)。
比如您的業(yè)務(wù)中存在每天只能執(zhí)行一次的定時(shí)任務(wù),在橫向擴(kuò)展后,在這定時(shí)任務(wù)執(zhí)行的時(shí)間點(diǎn)多臺(tái)服務(wù)器會(huì)同時(shí)執(zhí)行該定時(shí)任務(wù),此情況您可能需要調(diào)整任務(wù)處理邏輯。
階段二:將架構(gòu)演進(jìn)為彈性高可用架構(gòu)
在將ECS實(shí)例中的數(shù)據(jù)存儲(chǔ)與業(yè)務(wù)邏輯分離之后,可以通過創(chuàng)建副本的方式進(jìn)行橫向擴(kuò)展ECS實(shí)例(包含其中業(yè)務(wù)服務(wù))。
此時(shí)將服務(wù)集群遷移至伸縮組,利用其彈性能力快速創(chuàng)建服務(wù)的副本,使用負(fù)載均衡器作為服務(wù)集群的訪問入口,分?jǐn)倶I(yè)務(wù)負(fù)載,確保系統(tǒng)的穩(wěn)定和高效。
快速遷移以實(shí)現(xiàn)彈性高可用
方案介紹
如果您已經(jīng)完成數(shù)據(jù)存儲(chǔ)與業(yè)務(wù)邏輯的分離(無狀態(tài)化),您可以通過以下步驟快速將單體架構(gòu)服務(wù)遷移到伸縮組實(shí)現(xiàn)彈性高可用架構(gòu)。
部署示例網(wǎng)站(準(zhǔn)備實(shí)例)。本方案會(huì)模擬一個(gè)已經(jīng)完成無狀態(tài)化的示例Web服務(wù)實(shí)例,以該實(shí)例為例,演示遷移過程。您也可以使用現(xiàn)有實(shí)例進(jìn)行操作。
構(gòu)建包含業(yè)務(wù)服務(wù)的實(shí)例鏡像。該鏡像之后會(huì)作為您集群實(shí)例的啟動(dòng)鏡像,實(shí)例啟動(dòng)時(shí)自動(dòng)啟動(dòng)業(yè)務(wù)服務(wù)。
創(chuàng)建管理服務(wù)集群的伸縮組。之后會(huì)通過該伸縮組快速復(fù)制實(shí)例(橫向擴(kuò)展)。
為集群設(shè)置統(tǒng)一訪問入口。關(guān)聯(lián)負(fù)載均衡器實(shí)現(xiàn)統(tǒng)一訪問的入口。
擴(kuò)展實(shí)例(驗(yàn)證)。快速復(fù)制實(shí)例(橫向擴(kuò)展),訪問負(fù)載均衡器以驗(yàn)證集群正常工作。
1. 部署示例網(wǎng)站
首先您需要準(zhǔn)備能夠代表生產(chǎn)環(huán)境的應(yīng)用實(shí)例,用于后續(xù)的復(fù)制和自動(dòng)化部署。
本教程為您提供一個(gè)示例網(wǎng)站服務(wù),您可以使用該服務(wù)體驗(yàn)遷移過程。單擊一鍵部署示例服務(wù)完成示例服務(wù)的搭建。
該示例網(wǎng)站服務(wù)包含一個(gè)Web服務(wù)軟件包及其運(yùn)行環(huán)境和自啟動(dòng)腳本,且該實(shí)例已經(jīng)完成數(shù)據(jù)存儲(chǔ)與業(yè)務(wù)邏輯的分離,即無狀態(tài)化。
如果您的業(yè)務(wù)服務(wù)實(shí)例已經(jīng)無狀態(tài)化,且具備以上條件(軟件包、環(huán)境、自啟動(dòng)腳本),您也可以使用您的實(shí)際業(yè)務(wù)服務(wù)代替該實(shí)例進(jìn)行后續(xù)的遷移操作。
如右圖所示,在本示例架構(gòu)的ECS實(shí)例中,包含一個(gè)連接數(shù)據(jù)庫的Web服務(wù),訪問該服務(wù)的地址,可以查看當(dāng)前服務(wù)器的IP以及從數(shù)據(jù)庫中查詢到的一個(gè)字符串。同時(shí),會(huì)為該服務(wù)設(shè)置開機(jī)自啟動(dòng)命令,在ECS啟動(dòng)時(shí)會(huì)自動(dòng)運(yùn)行該服務(wù)。 該一鍵部署示例服務(wù)功能基于資源編排 ROS(Resource Orchestration Service)實(shí)現(xiàn),使用該功能會(huì)在您的阿里云賬戶下創(chuàng)建一個(gè)專有網(wǎng)絡(luò)(VPC)以及交換機(jī)(vSwitch)、一個(gè)包含示例服務(wù)的ECS實(shí)例、云數(shù)據(jù)庫 RDS MySQL版。 |
部署該實(shí)例服務(wù)的具體操作步驟如下:
單擊一鍵部署示例服務(wù)按鈕,進(jìn)入一鍵部署頁。
根據(jù)界面提示,選擇地域和可用區(qū)。
在實(shí)例配置中,選擇實(shí)例規(guī)格并設(shè)置實(shí)例密碼。
選擇最低配置即可,您可以選擇共享型實(shí)例節(jié)省體驗(yàn)成本。不同地域及可用區(qū)所支持的實(shí)例規(guī)格不同,請(qǐng)以界面顯示為準(zhǔn)。
選擇RDS實(shí)例規(guī)格并設(shè)置RDS數(shù)據(jù)庫密碼。
確認(rèn)費(fèi)用后,單擊立即部署按鈕,等待創(chuàng)建完成。
您可以在具體資源頁簽下查看進(jìn)度。您需要關(guān)注的資源如圖所示,從1到5依次為安全組、專有網(wǎng)絡(luò)VPC、交換機(jī)、ECS實(shí)例、RDS數(shù)據(jù)庫。
在查看輸出頁簽下,找到輸出的WebUrl的鏈接。
您可以在瀏覽器多次訪問該鏈接,每次看到的都是相同的IP,證明訪問到同一臺(tái)ECS實(shí)例。
2. 構(gòu)建包含業(yè)務(wù)服務(wù)的實(shí)例鏡像
為確保后續(xù)您新擴(kuò)展的實(shí)例中部署有業(yè)務(wù)服務(wù)和設(shè)置好的自啟動(dòng)腳本,您需要先以該實(shí)例為基礎(chǔ)創(chuàng)建自定義鏡像,后續(xù)創(chuàng)建的實(shí)例會(huì)以該鏡像作為基礎(chǔ)鏡像,在實(shí)例啟動(dòng)時(shí),您的業(yè)務(wù)服務(wù)也隨之啟動(dòng)。
進(jìn)入ECS管理控制臺(tái),將地域切換到您在步驟1中準(zhǔn)備的實(shí)例的地域。
找到步驟1中準(zhǔn)備好的ECS實(shí)例,在右側(cè)操作列,選擇
。在彈出的創(chuàng)建自定義鏡像對(duì)話框中,記錄鏡像名稱,方便后續(xù)查找,單擊確認(rèn)按鈕,等待鏡像創(chuàng)建完成。您可以在ECS控制臺(tái)左側(cè)導(dǎo)航欄單擊
查看鏡像創(chuàng)建進(jìn)度。
3. 創(chuàng)建管理服務(wù)集群的伸縮組
彈性高可用架構(gòu)的核心是通過伸縮組管理您的服務(wù)集群,您可以通過伸縮組快速復(fù)制實(shí)例,創(chuàng)建并啟用伸縮組具體操作如下:
進(jìn)入伸縮組管理頁。
登錄彈性伸縮控制臺(tái)。
如果您是第一次使用彈性伸縮,請(qǐng)根據(jù)界面提示開通彈性伸縮的權(quán)限。具體操作,請(qǐng)參見服務(wù)關(guān)聯(lián)角色。
- 在左側(cè)導(dǎo)航欄中,單擊伸縮組管理。
- 在頂部菜單欄處,選擇地域。
創(chuàng)建伸縮組。
在伸縮組管理頁面,單擊創(chuàng)建伸縮組按鈕進(jìn)入創(chuàng)建伸縮組頁面。
在頁面中完成如下配置。表中未涉及的配置項(xiàng)保持默認(rèn)即可。
配置項(xiàng)
說明
伸縮組名稱
根據(jù)界面提示輸入。本示例伸縮組名稱為ess-demo。
伸縮組類型
選中ECS。
組內(nèi)實(shí)例配置信息來源
選中選擇已有實(shí)例。
選擇已有實(shí)例
選擇在步驟1中準(zhǔn)備的ECS實(shí)例。
組內(nèi)最小實(shí)例數(shù)
伸縮組中實(shí)例數(shù)的最小值,當(dāng)伸縮組實(shí)例數(shù)低于該值時(shí),會(huì)自動(dòng)觸發(fā)擴(kuò)展。本示例最小實(shí)例數(shù)為0。
組內(nèi)最大實(shí)例數(shù)
伸縮組中實(shí)例數(shù)的最大值,當(dāng)伸縮組實(shí)例數(shù)高于該值時(shí),會(huì)自動(dòng)觸發(fā)收縮。本示例最大實(shí)例數(shù)為10。
專有網(wǎng)絡(luò)、選擇交換機(jī)
這兩個(gè)配置項(xiàng)會(huì)根據(jù)您選擇的ECS實(shí)例,自動(dòng)填充。
重要建議您創(chuàng)建并選擇多個(gè)可用區(qū)的交換機(jī),避免出現(xiàn)單一可用區(qū)實(shí)例庫存不足導(dǎo)致擴(kuò)容失敗,創(chuàng)建交換機(jī),請(qǐng)參見創(chuàng)建交換機(jī)。
選擇開啟。開啟該功能之后,可以通過設(shè)置期望實(shí)例數(shù)自動(dòng)擴(kuò)縮容。
輸入0即可,表示先創(chuàng)建一個(gè)空的伸縮組。
選中實(shí)例狀態(tài)檢查和負(fù)載均衡健康檢查,啟用該功能后,系統(tǒng)會(huì)根據(jù)健康檢查的結(jié)果,確保伸縮組中的所有實(shí)例及其業(yè)務(wù)服務(wù)正常運(yùn)行。一旦發(fā)現(xiàn)服務(wù)異常,將及時(shí)用新實(shí)例替換故障實(shí)例。
單擊創(chuàng)建按鈕,等待伸縮組創(chuàng)建完成。
修改伸縮配置中的實(shí)例鏡像。
在通過選擇已有實(shí)例創(chuàng)建伸縮組后,會(huì)根據(jù)ECS的原始鏡像創(chuàng)建一個(gè)伸縮配置,通過步驟1創(chuàng)建的實(shí)例中,原始鏡像不包含后續(xù)部署好的業(yè)務(wù)服務(wù)軟件包。因此需要將步驟2中新創(chuàng)建的鏡像覆蓋伸縮配置的基礎(chǔ)鏡像。
在伸縮組管理頁,找到剛剛創(chuàng)建的伸縮組,在右側(cè)操作列下,單擊查看詳情進(jìn)入該伸縮組的詳情頁。
如圖所示,在
頁簽下,單擊唯一的伸縮配置操作列下的修改鏡像。在彈出的修改鏡像的彈框中,選擇自定義鏡像,根據(jù)界面提示,選擇步驟2中創(chuàng)建的鏡像。單擊確認(rèn)按鈕完成修改。
啟用伸縮組。
在伸縮組管理頁,點(diǎn)擊右上角的啟用按鈕,伸縮組開始工作。
4. 為集群設(shè)置統(tǒng)一訪問入口
當(dāng)您將實(shí)例從1臺(tái)擴(kuò)展到多臺(tái)時(shí),需要為多臺(tái)實(shí)例組成的集群設(shè)置統(tǒng)一的訪問入口。您需要為伸縮組創(chuàng)建并關(guān)聯(lián)負(fù)載均衡器,使用戶請(qǐng)求通過負(fù)載均衡器自動(dòng)分?jǐn)偟郊旱母髋_(tái)ECS實(shí)例,從而平衡負(fù)載,最大化資源利用率。本示例使用應(yīng)用型負(fù)載均衡(ALB)作為負(fù)載均衡器,具體操作如下:
4.1 創(chuàng)建負(fù)載均衡器
- 登錄應(yīng)用型負(fù)載均衡ALB控制臺(tái)。
在實(shí)例頁面,單擊創(chuàng)建應(yīng)用型負(fù)載均衡。
在應(yīng)用型負(fù)載均衡(按量付費(fèi))購買頁面。根據(jù)界面提示完成應(yīng)用型負(fù)載均衡的創(chuàng)建。
本示例以下配置,未提及配置項(xiàng)保持默認(rèn)。
配置項(xiàng)
說明
地域
關(guān)聯(lián)與步驟1中實(shí)例的地域保持一致。
實(shí)例網(wǎng)絡(luò)類型
選擇公網(wǎng)。
VPC
選擇步驟1中準(zhǔn)備實(shí)例的VPC。
可用區(qū)
至少選擇兩個(gè),如果選擇的可用區(qū)沒有交換機(jī),需要根據(jù)界面提示創(chuàng)建對(duì)應(yīng)可用區(qū)的交換機(jī)。創(chuàng)建交換機(jī)的操作說明,請(qǐng)參見創(chuàng)建交換機(jī)。
4.2 為業(yè)務(wù)集群創(chuàng)建后端服務(wù)器組
此后端服務(wù)器組將會(huì)關(guān)聯(lián)到伸縮組,伸縮組創(chuàng)建的實(shí)例會(huì)自動(dòng)添加到該后端服務(wù)器組,通過負(fù)載均衡器對(duì)外提供服務(wù)。
在應(yīng)用型負(fù)載均衡ALB控制臺(tái)。選擇地域。
單擊左側(cè)導(dǎo)航欄的服務(wù)器組進(jìn)入服務(wù)器組頁面,單擊創(chuàng)建服務(wù)器組按鈕,根據(jù)界面提示完成后端服務(wù)器組的創(chuàng)建。
本示例使用以下配置,未提及配置項(xiàng)保持默認(rèn)。
配置項(xiàng)
說明
服務(wù)器組類型
選擇服務(wù)器類型。
服務(wù)器組名稱
根據(jù)界面提示輸入,本示例以ess-test-server-group為例。
VPC
選擇步驟1中準(zhǔn)備的實(shí)例的VPC。
4.3 為負(fù)載均衡器配置監(jiān)聽
創(chuàng)建一個(gè)HTTP監(jiān)聽來轉(zhuǎn)發(fā)來自HTTP協(xié)議的請(qǐng)求,負(fù)載均衡實(shí)例在監(jiān)聽到HTTP請(qǐng)求時(shí),可以將請(qǐng)求轉(zhuǎn)發(fā)到后端服務(wù)器組的ECS實(shí)例中。
在應(yīng)用型負(fù)載均衡ALB控制臺(tái)。選擇地域。
單擊左側(cè)導(dǎo)航欄的實(shí)例,找到步驟4.1創(chuàng)建的負(fù)載均衡器,在右側(cè)操作列下單擊創(chuàng)建監(jiān)聽,根據(jù)界面提示完成監(jiān)聽的創(chuàng)建。
本示例使用以下配置,未提及配置項(xiàng)保持默認(rèn)。
配置項(xiàng)
說明
選擇監(jiān)聽協(xié)議
選擇HTTP。
監(jiān)聽端口
負(fù)載均衡對(duì)外提供服務(wù)的端口,本示例服務(wù)的使用80,代表監(jiān)聽訪問該負(fù)載均衡器80端口的請(qǐng)求。
選擇服務(wù)器組
選擇步驟4.2創(chuàng)建的服務(wù)器組。
4.4 為伸縮組關(guān)聯(lián)負(fù)載均衡器
在伸縮組管理頁,找到步驟3中創(chuàng)建的伸縮組,在右側(cè)操作列下,單擊查看詳情進(jìn)入該伸縮組的詳情頁。
在基本信息頁簽下,找到關(guān)聯(lián)負(fù)載均衡ALB、NLB服務(wù)器組,單擊添加關(guān)聯(lián)負(fù)載均衡ALB、NLB服務(wù)器組,在彈出的對(duì)話框中單擊添加服務(wù)器組,根據(jù)界面提示,關(guān)聯(lián)步驟4.2創(chuàng)建的后端服務(wù)器組。完成配置后,單擊確認(rèn)按鈕完成關(guān)聯(lián)負(fù)載均衡器的操作。
重要該配置項(xiàng)中的端口設(shè)置為您的業(yè)務(wù)服務(wù)對(duì)外提供服務(wù)的端口,本示例的業(yè)務(wù)服務(wù)使用80端口。
5. 開始擴(kuò)展實(shí)例(驗(yàn)證)
在準(zhǔn)備好伸縮組并已關(guān)聯(lián)負(fù)載均衡器之后,此時(shí)可以開始擴(kuò)展實(shí)例,驗(yàn)證集群是否可以正常工作。
觸發(fā)伸縮組的擴(kuò)容操作,伸縮組將自動(dòng)創(chuàng)建實(shí)例。
您可以通過修改伸縮組期望實(shí)例數(shù)觸發(fā)擴(kuò)容操作。具體操作步驟如下:
在伸縮組管理頁,找到剛剛創(chuàng)建的伸縮組,在右側(cè)操作列下,單擊查看詳情進(jìn)入該伸縮組的詳情頁。
在基本信息頁簽下,找到實(shí)例伸縮概覽,單擊,在彈出的修改實(shí)例伸縮概覽彈框中,修改組內(nèi)期望實(shí)例數(shù),從0修改為3(代表集群需要3臺(tái)ECS實(shí)例對(duì)外提供服務(wù)),單擊確認(rèn)完成修改。
等待實(shí)例創(chuàng)建完成,完成后會(huì)在伸縮組下創(chuàng)建3個(gè)ECS實(shí)例,您可以在實(shí)例列表頁簽下查看實(shí)例的創(chuàng)建情況。
訪問負(fù)載均衡器的地址,驗(yàn)證請(qǐng)求可以負(fù)載均衡到新創(chuàng)建的實(shí)例。
進(jìn)入應(yīng)用型負(fù)載均衡ALB控制臺(tái)。
找到步驟4.1中創(chuàng)建的負(fù)載均衡器,在DNS名稱下,找到訪問的網(wǎng)址。
多次訪問該網(wǎng)址,可以看到不同的IP地址,證明可以通過負(fù)載均衡器訪問到不同的服務(wù)器。
6. (可選)資源清理
如果您不再需要該集群,您可以通過以下流程清理資源。
釋放步驟4.1中創(chuàng)建的負(fù)載均衡器。具體操作,請(qǐng)參見釋放ALB實(shí)例。
刪除步驟3中創(chuàng)建的伸縮組。具體操作,請(qǐng)參見刪除伸縮組。
刪除步驟4.2中創(chuàng)建的后端服務(wù)器組。具體操作,請(qǐng)參見刪除服務(wù)器組。
刪除步驟2中構(gòu)建的自定義鏡像。具體操作,請(qǐng)參見刪除自定義鏡像。
刪除您在步驟3和步驟4.1中創(chuàng)建的交換機(jī)(vSwitch),具體操作,請(qǐng)參見刪除專有網(wǎng)絡(luò)、刪除交換機(jī)。
清理步驟1中部署的示例服務(wù)。如果您部署了步驟1中的示例服務(wù),您可以刪除其創(chuàng)建的資源棧,在刪除資源棧時(shí),選擇刪除方式為釋放資源,即可完成示例服務(wù)的資源清理。具體操作,請(qǐng)參見刪除資源棧。
后續(xù)使用建議
用于生產(chǎn)環(huán)境之前
為了確保該彈性高可用方案在生產(chǎn)環(huán)境中穩(wěn)定運(yùn)行,建議您在用于生產(chǎn)環(huán)境前,完成以下操作:
完善伸縮組配置
實(shí)現(xiàn)多可用區(qū)容災(zāi):您可以為伸縮組配置多個(gè)可用區(qū)的交換機(jī),并設(shè)置均衡分布策略,這樣伸縮組可以在多個(gè)可用區(qū)創(chuàng)建實(shí)例,并將業(yè)務(wù)服務(wù)實(shí)例均衡分布在各個(gè)可用區(qū),提升集群的擴(kuò)容成功率和容災(zāi)能力。具體操作,請(qǐng)參見擴(kuò)縮容策略。
選擇多個(gè)實(shí)例規(guī)格提高擴(kuò)容成功率:單一實(shí)例規(guī)格在庫存不足時(shí)也會(huì)出現(xiàn)擴(kuò)容失敗的現(xiàn)象,您可以選擇多個(gè)實(shí)例規(guī)格創(chuàng)建實(shí)例,以提高擴(kuò)容成功率。具體操作,請(qǐng)參見創(chuàng)建伸縮配置(ECS實(shí)例)。
充分測(cè)試
如果將該彈性高可用方案應(yīng)用于生產(chǎn)環(huán)境,建議您在集群搭建完成后,進(jìn)行測(cè)試工作,確保您的服務(wù)復(fù)制為多個(gè)時(shí)不會(huì)出現(xiàn)問題,同時(shí)也可以對(duì)集群進(jìn)行壓測(cè),來預(yù)估您的資源需求。
使用域名作為集群訪問入口
如果您原來使用域名訪問您的ECS實(shí)例,您可以調(diào)整域名解析,將域名指向您的負(fù)載均衡器,這樣,通過域名訪問時(shí),用戶的請(qǐng)求可以經(jīng)過負(fù)載均衡器訪問到您的服務(wù)集群。具體操作,請(qǐng)參見設(shè)置CNAME域名解析。
在您修改域名解析之后,由于DNS傳播需要時(shí)間,請(qǐng)暫時(shí)不要調(diào)整原服務(wù)的IP或者停止原實(shí)例,請(qǐng)先保持原ECS實(shí)例運(yùn)行一段時(shí)間,您可以先在監(jiān)控中觀察流入該ECS實(shí)例的流量,待流量清零時(shí)再停止該實(shí)例。
這么做是為了避免用戶所使用的DNS服務(wù)器沒有更新DNS緩存,從而訪問原ECS實(shí)例的IP。此時(shí)如果該ECS實(shí)例停止服務(wù),會(huì)造成這部分用戶無法訪問。
本示例使用HTTP訪問集群,如果您需要您的集群訪問域名支持HTTPS,需要為負(fù)載均衡器設(shè)置HTTPS監(jiān)聽,具體操作,請(qǐng)參見添加HTTPS監(jiān)聽。