1. 背景
生產(chǎn)環(huán)境中往往采用集群的方式保證Nacos的高可用,本文記錄了搭建的過程耻矮。
Nacos集群的搭建時要注意:1.xx 版本和 2.xx 版本有區(qū)別。從2.0開始Nacos使用了 gRPC 忆谓,需要開放額外的端口裆装。我就遇到了 各個 Nacos 節(jié)點(diǎn)無法互相復(fù)制,注冊的服務(wù)不一致的情況陪毡。
2. 安裝Nacos
集群模式部署
這個快速開始手冊是幫忙您快速在你的電腦上米母,下載安裝并使用Nacos勾扭,部署生產(chǎn)使用的集群模式毡琉。
集群部署架構(gòu)圖
因此開源的時候推薦用戶把所有服務(wù)列表放到一個vip下面,然后掛到一個域名下面
http://ip1:port/openAPI 直連ip模式妙色,機(jī)器掛則需要修改ip才可以使用桅滋。
http://SLB:port/openAPI 掛載SLB模式(內(nèi)網(wǎng)SLB,不可暴露到公網(wǎng)身辨,以免帶來安全風(fēng)險)丐谋,直連SLB即可,下面掛server真實ip煌珊,可讀性不好号俐。
http://nacos.com:port/openAPI 域名 + SLB模式(內(nèi)網(wǎng)SLB,不可暴露到公網(wǎng)定庵,以免帶來安全風(fēng)險)吏饿,可讀性好踪危,而且換ip方便,推薦模式
2.1. 預(yù)備環(huán)境準(zhǔn)備
請確保是在環(huán)境中安裝使用:
64 bit OS Linux/Unix/Mac猪落,推薦使用Linux系統(tǒng)贞远。
64 bit JDK 1.8+;下載.配置笨忌。
Maven 3.2.x+蓝仲;下載.配置。
3個或3個以上Nacos節(jié)點(diǎn)才能構(gòu)成集群官疲。
2.2. 下載安裝包
下載編譯后壓縮包方式
unzip nacos-server-1.3.0.zip 或者 tar -xvf nacos-server-1.3.0.tar.gz
cd nacos/bin
2.3. 配置集群配置文件
在nacos的解壓目錄nacos/的conf目錄下袱结,有配置文件 cluster.conf,請每行配置成ip:port袁余。(請配置3個或3個以上節(jié)點(diǎn))
修改 cluster.conf 擎勘,命令如下:
vi cluster.conf
內(nèi)容如下:
# ip:port
200.8.9.16:8848
200.8.9.17:8848
200.8.9.18:8848
2.4. 確定數(shù)據(jù)源
使用外置數(shù)據(jù)源
生產(chǎn)使用建議至少主備模式,或者采用高可用數(shù)據(jù)庫颖榜。
(1) 初始化 MySQL 數(shù)據(jù)庫
● 進(jìn)入nacos/conf目錄棚饵,找到nacos-mysql.sql。
● 登入數(shù)據(jù)庫掩完,創(chuàng)建一個新的數(shù)據(jù)庫噪漾,比如叫做 nacos_config。
● 并在 mysql 中執(zhí)行剛剛的找到的 nacos-mysql.sql 文件的語句來創(chuàng)建表且蓬。
(2) application.properties 配置
修改 application.properties配置文件中的數(shù)據(jù)源描述
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://ip:3306/nacos_config?characterEncoding=u
tf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&serverTimezone=UTC
db.user=root
db.password=數(shù)據(jù)庫密碼
2.5. 啟動服務(wù)器
在 Linux/Unix/Mac 下安裝
(1) 單機(jī)模式 Stand-alone mode
sh startup.sh -m standalone
(2) 集群模式
sh startup.sh
6. 配置 Nginx 代理
編輯文件nginx.conf, 命令:
$ cd /usr/local/nginx/conf
$ vi nginx.conf
內(nèi)容修改:
upstream serverList {
server 172.17.0.112:8847;
server 172.17.0.111:8847;
server 172.17.0.110:8847;
}
server {
location / {
proxy_pass http://serverList;
}
}
3. Nacos 開機(jī)自啟的設(shè)置
編輯一個服務(wù)文件
命名為 start-nacos.sh 文件欣硼,內(nèi)容如下:
#!/bin/bash
export JAVA_HOME=/opt/data/jdk1.8/jdk1.8.0_161
nohup nacos_home/bin/startup.sh -m standalone &
在操作系統(tǒng)啟動后 /etc/profile 還未加載,所以這里要先 設(shè)置 JAVA_HOME 的環(huán)境變量恶阴,改成你實際的java jdk 路徑诈胜。 然后正常啟動 nacos 即可。
在 /etc/rc.local 文件的尾部加上下面的內(nèi)容即可冯事。
sh start-nacos.sh
4. Nacos 2.0.0 和 1.x 的區(qū)別
注意 開放gRPC端口
Nacos2.0版本相比1.X新增了gRPC的通信方式焦匈,因此需要增加2個端口。新增端口是在配置的主端口(server.port)基礎(chǔ)上昵仅,進(jìn)行一定偏移量自動生成缓熟。
端口 | 與主端口的偏移量 | 描述 |
---|---|---|
9848 | 1000 | 客戶端gRPC請求服務(wù)端端口,用于客戶端向服務(wù)端發(fā)起連接和請求 |
9849 | 1001 | 服務(wù)端gRPC請求服務(wù)端端口摔笤,用于服務(wù)間同步等 |
使用VIP/nginx請求時够滑,需要配置成TCP轉(zhuǎn)發(fā),不能配置http2轉(zhuǎn)發(fā)吕世,否則連接會被nginx斷開彰触。
5.參考
https://nacos.io/zh-cn/docs/2.0.0-compatibility.html
https://blog.csdn.net/lzzyok/article/details/118057217?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2aggregatepagefirst_rank_ecpm_v1~rank_aggregation-1-118057217.pc_agg_rank_aggregation&utm_term=nacos%E9%9B%86%E7%BE%A4+%E6%9C%8D%E5%8A%A1%E5%88%97%E8%A1%A8%E4%B8%8D%E4%B8%80%E8%87%B4&spm=1000.2123.3001.4430