高并发之阿里云弹性伸缩的使用记录
說明
阿里云的彈性伸縮功能,是阿里云ecs服務器應對高并發業務的解決方案
阿里云彈性伸縮文檔:https://help.aliyun.com/document_detail/25857.html
此文檔記錄了當前架構如何結合阿里云彈性伸縮的踩坑之路
前提
1、啟用阿里云彈性伸縮的前提是業務已經有一定的性能測試的經歷,了解哪些應用服務比較吃ecs的cpu,并發可能較大
2、需要將可能存在并發的應用服務隔離出來,單獨放在一臺服務器
3、應用服務連接數據庫RDS、redis、eureka需要用內網IP
4、轉發到應用服務的流量必須從阿里云的slb或者gateway網關服務,暫不支持自建的nginx
以下我以商城服務為例,來搭建彈性伸縮系統
1、搭建應用程序自動部署的鏡像
需要創建一個鏡像,可以自啟動將特定的應用程序
1)新建一個ecs-A,性能配置一般用2cpu、4G內存,操作系統用centos7.9(單進程的話可以選擇1核2G)
并且安裝基礎服務:
yum install -y java-1.8.0-openjdk-devel.x86_64
yum install mysql -y
yum install lrzsz -y
yum install vim -y
yum install sshpass -y
yum -y install nc
2)登錄ecs-A,cd /etc/systemd/system
3)vim run-script-when-shutdown.service
4)
[Unit]
Description=service to run script when shutdown
After=syslog.target network.target
[Service]
Type=simple
ExecStart=/root/restart-ecs.sh
ExecStop=/root/stop-ecs.sh
RemainAfterExit=yes
[Install]
WantedBy=default.target
5)
這一步我們需要編寫服務器ecs-A的開機自啟動腳本,因為代碼不支持鉤子觸發自動發布,我思考通過拉取原始服務器的jar包,來實現應用的自動化部署
腳本不貼了,大概就是將代碼包拉過來,然后啟動進程
vim /root/restart-ecs.sh
#!/bin/bash
0********0
6)啟動服務,發現服務已經注冊到eureka,并測試接口正常。或者reboot重啟服務器,看服務能否自啟動
systemctl daemon-reload
systemctl enable run-script-when-shutdown
systemctl start run-script-when-shutdown
7)將服務器ecs-A打成一個自定義鏡像
2、創建啟動模板
1)實例規格選擇計算型實例,按量付費
2)選擇自定義鏡像
3)需要配公網IP
4)使用鏡像預設密碼
創建成功如圖
3、創建伸縮組
1)選用啟動模板
2)始終使用最新版本
3)擴展啟動模板配置中多選幾個實例類型
4)實例移出策略:最早伸縮配置對應的實例、最早創建的實例
5)最小實例數:正式環境建議0,最大實例數:正式環境建議2
6)默認冷卻時間:300
7)擴縮容策略:均衡分布策略
8)選擇交換機:建議多選幾個交換機,最少2個
9)添加已有實例:將基線服務器(線上兩臺加入)
10)通過阿里云slb轉發流量的服務需要增加關聯傳統型負載均衡CLB(原SLB)
4、增加保護狀態
將手動移入的實例設置為保護狀態
最大實例數和最小實例數包含保護中的實例
5、創建伸縮規則和報警任務
一般伸縮規則就是加一臺ecs/減一臺ecs
一般報警任務是監控cpu
6、通過壓力測試觀察服務器擴縮容情況
總結
以上是生活随笔為你收集整理的高并发之阿里云弹性伸缩的使用记录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 设定窗体显示状态(ShowWindow)
- 下一篇: Python高级第2课——飞机大战(只读