安徽設(shè)計(jì)網(wǎng)站建設(shè)南寧百度推廣seo
概述
2024年傳統(tǒng)應(yīng)用程序上云,改造方案
1、mysql 云環(huán)境高可用方案
2、redis 云環(huán)境高可用方案
3、nginx 云環(huán)境高可用方案
4、應(yīng)用 云環(huán)境高可用方案
1、mysql 云環(huán)境高可用方案
1.1 你先了解
1.1.1 你先了解“mysql高可用方案”
主從復(fù)制(Master-Slave Replication)、主主復(fù)制(Master-Master Replication)、MySQL Group Replication、MySQL Cluster:、Galera Cluster: 、ProxySQL 或 HAProxy:
1.1.2 了解K8S基礎(chǔ)知識(shí)
1、k8s pv 、pvc ; 2、了解:k8s statefulSets,3、了解 k8s service
1.2 實(shí)施方案相對(duì)較低
MySQL group replication +k8s service+springboot
人工干預(yù)較少,需專門運(yùn)維,發(fā)生問題;發(fā)送通知,重啟異常數(shù)據(jù)庫(kù);
需要改造程序嗎:不需要,數(shù)據(jù)庫(kù)負(fù)載靠 k8s service,程序連接 k8s service
MySQL group replication 配復(fù)雜嗎:不復(fù)雜,mysql8自帶的一個(gè)插件,僅需啟用插件和修改mysql配置文件;
傳統(tǒng)的方案
主主復(fù)制+keepavlie,該方案也可上云,宕機(jī)需人工干預(yù);
1.3 MySQL group replication 寫性能比物理機(jī)低需要注意啥
加點(diǎn)配置,網(wǎng)絡(luò)帶寬至少1Gib,帶寬可能對(duì)環(huán)境影響較大;
1.4 mysql 云環(huán)境的定時(shí)備份velero
至于備份周期,自行了解,需根據(jù)場(chǎng)景判斷;
1.5 傳統(tǒng)物理環(huán)境安全保證 RAID
也少不了,磁盤磁盤RAID,我是保守派:數(shù)據(jù)庫(kù)做 RAID 1 + 定期巡檢 才放心;
2、redis 云環(huán)境高可用方案
2.1 解決方案
方案很成熟,官方解決方案,redis 哨兵、集群都可;
redis 哨兵:最低可3個(gè)節(jié)點(diǎn):哨兵和redis部署在1個(gè)節(jié)點(diǎn),可死掉1個(gè)節(jié)點(diǎn),不影響高可用;
redis集群:最低 6個(gè)節(jié)點(diǎn),可死掉2個(gè)節(jié)點(diǎn),不影響高可用;
也少不了監(jiān)控,宕機(jī)找人啟動(dòng);云環(huán)境redis使用原則:存儲(chǔ)允許丟失的數(shù)據(jù);
2.2 程序改造
換 lettuce,lettuce redis 支持哨兵、集群和單機(jī)的配置 ,3者僅springboot配置文件不一樣;
3、nginx 云環(huán)境高可用方案
3.1 方案一
ConfigMap 部署 NGINX , ConfigMap 更新時(shí)自動(dòng)重載 NGINX,可以使用 config-reloader
k8s Service 以實(shí)現(xiàn)負(fù)載均衡
方案二(標(biāo)準(zhǔn)方案):
除了上述:添加 Helm Chart 管理部署; Helm Chart 中配置 livenessProbe 和 readinessProbe,確保 Kubernetes 能夠監(jiān)控 Pods 的健康狀況,并在需要時(shí)進(jìn)行自愈
前端vue:無需改動(dòng),推薦使用NFS 共享盤,所有nginx節(jié)點(diǎn)公用1個(gè)掛載點(diǎn),并啟動(dòng)nginx緩存;
4、應(yīng)用 云環(huán)境高可用方案
應(yīng)用無主:jwt+token
數(shù)據(jù)庫(kù)高可用,已列:
文件無主:目前多采用可觀測(cè)的文件服務(wù)器minio:傳統(tǒng)的文件無主方案:k8s Nfs 磁盤共享;