Nacos集群搭建和mysql持久化配置
@toc
這篇很重要,因?yàn)樯a(chǎn)環(huán)境中為了高可用都是使用的nacos集群,單節(jié)點(diǎn)的服務(wù)注冊(cè)這些你跟著官網(wǎng)配置都可以,但是集群是必須要會(huì)的。
1、Nacos集群部署架構(gòu)
生產(chǎn)環(huán)境大多使用集群模式以確保高可用。
nacos集群架構(gòu)圖如下:
nacos支持三種部署模式:
單擊模式:用于測(cè)試和單擊試用。
集群模式:用于生產(chǎn)環(huán)境,確保高可用。
多集群模式:用于多數(shù)據(jù)中心場(chǎng)景。
因此開(kāi)源的時(shí)候推薦用戶(hù)把所有服務(wù)列表放到一個(gè)vip下面,然后掛到一個(gè)域名下面
http://ip1:port/openAPI 直連ip模式,機(jī)器掛則需要修改ip才可以使用。
http://SLB:port/openAPI 掛載SLB模式(內(nèi)網(wǎng)SLB,不可暴露到公網(wǎng),以免帶來(lái)安全風(fēng)險(xiǎn)),直連SLB即可,下面掛server真實(shí)ip,可讀性不好。
http://nacos.com:port/openAPI 域名 + SLB模式(內(nèi)網(wǎng)SLB,不可暴露到公網(wǎng),以免帶來(lái)安全風(fēng)險(xiǎn)),可讀性好,而且換ip方便,推薦模式
這里吐槽一點(diǎn),阿里巴巴的文檔寫(xiě)的不是很全,可能阿里大佬太多,以為上面那張圖咱能看懂吧,你如果看到上面的架構(gòu)圖能立馬翻譯成下面這種,那說(shuō)明你真的懂了。
上面的架構(gòu)圖并沒(méi)有具體說(shuō)明SLB是什么,實(shí)際上上面的架構(gòu)圖翻譯成下面這種看起來(lái)是不是很熟悉。
2、Nacos持久化配置解釋
由于Nacos默認(rèn)自帶的是嵌入式數(shù)據(jù)庫(kù)derby,這樣不方便我們使用工具實(shí)時(shí)檢測(cè),所以這里改用Mysql持久化nacos的配置。
derby切換到mysql的步驟:
先去conf文件夾下面找到nacos-mysql.sql這條腳本,然后在自己的數(shù)據(jù)庫(kù)中執(zhí)行該腳本,執(zhí)行之后的效果如下:
再去修改conf文件夾下面的application.properties文件,增加數(shù)據(jù)庫(kù)配置文件:
示例如下:
3、Linux版Nacos+MySQL生產(chǎn)環(huán)境配置
3.1 集群規(guī)劃
準(zhǔn)備三個(gè)nacos節(jié)點(diǎn)
nacos01節(jié)點(diǎn):192.168.159.33:3333
nacos02節(jié)點(diǎn):192.168.159.33:4444
nacos03節(jié)點(diǎn):192.168.159.33:5555
準(zhǔn)備一個(gè)nginx
準(zhǔn)備一個(gè)mysql:192.168.159.33:3306
即1個(gè)nginx+3個(gè)nacos節(jié)點(diǎn)+1個(gè)mysql的低配集群。
這里為了簡(jiǎn)單,nginx和mysql并沒(méi)有使用集群搭建,效果是一樣的。
當(dāng)然了,如果你嫌三臺(tái)節(jié)點(diǎn)都在同一個(gè)虛擬機(jī)中搭建不合理,那你也可以啟動(dòng)三臺(tái)虛擬機(jī),然后修改下ip即可。
3.2 nacos的linux版本安裝
-:https://github.com/alibaba/nacos/releases/tag/1.4.1
我這里使用的是1.4.1版本,
下載之后直接解壓就能用了。
目錄如下:
3.3 linux服務(wù)器上的mysql數(shù)據(jù)庫(kù)配置
將conf文件夾下面的nacos-mysql.sql腳本在mysql中執(zhí)行。
執(zhí)行之后查看結(jié)果
3.4 復(fù)制三份nacos文件
我們這里使用nacos01、nacos02、nacos03,只是為了測(cè)試,生產(chǎn)環(huán)境中請(qǐng)?jiān)诓煌墓?jié)點(diǎn)上面配置。
3.5 修改application.properties
修改/conf文件夾下面的application.properties文件,增加mysql持久化配置。
nacos01、nacos02、nacos03中都需要做如下修改:
spring.datasource.platform=mysql db.num=1 db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?useUnicode=true&characterEncoding=utf-8&useSSL=false db.user=root db.password=123456
3.6 修改cluster.conf
在nacos01文件夾中修改/conf文件夾下面的cluster.conf
初始是沒(méi)有的,只有個(gè)cluster.conf.example,
我們執(zhí)行命令cp cluster.conf.example cluster.conf即可。
然后執(zhí)行vim cluster.conf命令編輯該文件
增加如下配置:
192.168.159.33:3333 192.168.159.33:4444 192.168.159.33:5555
現(xiàn)在只配置了nacos01,我們直接將該文件復(fù)制到nacos02和nacos03對(duì)應(yīng)的文件夾中即可。
執(zhí)行如下命令:
cp cluster.conf /usr/local/nacos02/conf/ cp cluster.conf /usr/local/nacos03/conf/
3.7 修改三臺(tái)節(jié)點(diǎn)的端口號(hào)
分別修改三臺(tái)節(jié)點(diǎn)的/conf文件夾下面的application.properties文件。
將nacos01、nacos02、nacos03的端口號(hào)分別修改為3333、4444、5555
nacos01:
vim /usr/local/nacos01/conf/application.properties
nacos02:
vim /usr/local/nacos02/conf/application.properties
nacos03:
vim /usr/local/nacos03/conf/application.properties
3.8 啟動(dòng)三臺(tái)nacos節(jié)點(diǎn)
分別進(jìn)入到三臺(tái)節(jié)點(diǎn)的/bin文件下面執(zhí)行如下命令
startup.sh
從上圖可以發(fā)現(xiàn),都是以集群模式(cluster)啟動(dòng)的。
訪問(wèn)三臺(tái)節(jié)點(diǎn)的控制臺(tái)查看是否成功:
http://192.168.159.33:3333/nacos
http://192.168.159.33:4444/nacos
http://192.168.159.33:5555/nacos
3.9 使用nginx做負(fù)載均衡
修改nginx的配置文件
vim nginx.conf
添加如下配置:
這里配置的意思是讓nginx監(jiān)聽(tīng)1111端口(你讓它監(jiān)聽(tīng)80端口也是可以的)
啟動(dòng)nginx
cd sbin ./nginx -c /usr/local/nginx/conf/nginx.conf
3.10 集群測(cè)試
截止到此處,1個(gè)nginx+3個(gè)nacos注冊(cè)中心+1個(gè)mysql的配置就搭建完成了。
測(cè)試Nginx訪問(wèn)nacos:http://192.168.159.33:1111/nacos
新建一個(gè)配置測(cè)試:
分別查看三臺(tái)節(jié)點(diǎn)是不是都有該配置,
nacos01:
nacos02:
nacos03:
查看linux服務(wù)器中的mysql是否多了一條記錄
3.11 微服務(wù)注冊(cè)測(cè)試
微服務(wù)cloudalibaba-provider-payment9002啟動(dòng)注冊(cè)進(jìn)nacos集群
修改application.yml文件的nacos注冊(cè)地址為:192.168.159.33:1111,注意,這是nginx的監(jiān)聽(tīng)的地址,由它負(fù)載均衡之后交給192.1168.159.33:3333、192.1168.159.33:4444、192.1168.159.33:5555這三臺(tái)節(jié)點(diǎn)中的一個(gè)處理。
啟動(dòng)該微服務(wù)之后,去nacos控制臺(tái)查看是否注冊(cè)成功。
到此,集群搭建與持久化配置就介紹完了,這里你完全可以將nginx和mysql也是用集群搭建,實(shí)現(xiàn)真正的高可用集群。
==注意:這里你如果用單臺(tái)虛擬機(jī)模擬的話,內(nèi)存要在3G以上才可以。==
MySQL Nginx Spring Cloud 彈性負(fù)載均衡 ELB 微服務(wù)
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶(hù)投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。