一、集群部署說明
官網集群部署:https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html
集群架構如下:
二、環(huán)境準備
搭建集群首先要具備
JDK環(huán)境
,其次需要,1個Nginx+3個nacos注冊中心+1個mysql
,集群按正常來說應該要具備三臺服務器,我這里設備有限,就在一臺機器上來搭建集群了!Nginx主要用他作為負載均衡。如果您也是一臺Linux機器,Linux內存最少要4個G
左右,不然可能會內存爆滿,然后會導致Nacos啟動不成功等問題!
- jdk環(huán)境:https://blog.csdn.net/weixin_43888891/article/details/126810947?spm=1001.2014.3001.5501
- 基于docker安裝mysql:https://blog.csdn.net/weixin_43888891/article/details/113577006
- 創(chuàng)建Nacos數據庫,并執(zhí)行腳本(Nacos數據持久化到mysql),腳本文件:https://github.com/alibaba/nacos/blob/master/config/src/main/resources/META-INF/nacos-db.sql
- 安裝Nginx:https://blog.csdn.net/weixin_43888891/article/details/122831636
- Nacos下載地址:https://github.com/alibaba/nacos/releases
6. 查看nginx是否啟動成功:ps -ef | grep nginx
三、搭建Nacos集群
我這里用的是一臺機器,假如你是三臺機器,那么每一臺都需要這么操作,切記每個nacos的
cluster.conf
要保持一致,并且application.properties
當中指定的mysql數據庫也都要是一致的。
第一步:上傳解壓:
- 創(chuàng)建存放nacos的文件夾:
mkdir /opt/nacos
- 通過
xftp
上傳tar包到/opt/nacos
- 解壓:
tar -zxvf nacos-server-2.1.1.tar.gz
第二步:修改application.properties,指定mysql持久化
- 修改配置文件:
vi /opt/nacos/nacos/conf/application.properties
,Esc進入編輯狀態(tài)
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=root
-
:wq
保存application.properties配置
第三步:指定集群的IP和端口
- 進入/opt/nacos/nacos/conf復制出cluster.conf:
cp cluster.conf.example cluster.conf
- cluster.conf內容如下,在文件最下方修改即可(這里我用本機真實ip地址或者127.0.0.1,在后面均可正常啟動,但還是推薦使用本機真實ip地址,如果使用127.0.0.1,在nacos頁面的集群管理當中會出現兩個節(jié)點,一個是127.0.0.1,一個是真實ip的!):
vi cluster.conf
改完后:wq
保存cluster.conf配置
第四步:由于用的一臺機器,而startup.sh并沒有傳入端口號的參數,所以手動加一個
編輯Nacos的啟動腳本startup.sh,使它能夠接受不同的啟動端口(如果本身就是三臺機器,可以跳過這一步)
- /opt/nacos/nacos/bin:目錄下有startup.sh,平時單機版的啟動,都是./startup.sh即可。
- 集群啟動,我們希望可以類似其它軟件的shell命令,傳遞不同的端口號啟動不同的nacos實例。命令:
./startup.sh -t 3333
表示啟動端口號為3333的nacos服務器實例,和上一步的cluster.conf配置的一致。
一共需要修改兩個地方,如下:vi startup.sh
修改后:-Dserver.port=${PORT}
一定不要放錯地方了,放到"$JAVA"
后面
第五步:copy兩個nacos
由于我們沒有多臺機器,只有一臺,那我們一臺機器啟動多個nacos,在低版本當中支持一個nacos安裝包多個啟動,但是2.0以后版本是不支持的,不然會報錯:
Fail to init node, please see the logs to find the reason.
,所以一切配置好之后直接copy兩個文件:cp -r /opt/nacos/nacos /opt/nacos/nacos2
第六步:啟動執(zhí)行
sh /opt/nacos/nacos/bin/startup.sh -t 3333
sh /opt/nacos/nacos1/bin/startup.sh -t 4444
sh /opt/nacos/nacos2/bin/startup.sh -t 5555
- 查看啟動日志:
tail -f /opt/nacos/nacos/logs/start.out
- 出現報錯(沒有出現報錯的話忽略這一步):
-
(1)查看哪個安裝包包含該庫:
yum provides libstdc++.so.6
-
(2)安裝:
yum install libstdc+±4.8.5-44.el7.i686
-
(3)停止nacos:
ps -ef | grep nacos
然后再kill -9 進程id
這時候再啟動就不報錯了!
-
四、調整Nginx的配置
在實際開發(fā)當中是可以使用Nginx集群的,當然我這里用的是單機Nginx
- 修改配置文件:
vi /usr/local/nginx/conf/nginx.conf
- 在nginx.conf的http塊加如下配置:
upstream cluster {
server 127.0.0.1:3333;
server 127.0.0.1:4444;
server 127.0.0.1:5555;
}
server {
listen 1111;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
#root html;
#index index.html index.htm;
proxy_pass http://cluster;
}
}
cd /usr/local/nginx/sbin
- 讓配置生效:
./nginx -s reload
防火墻相關設置:
- 查看是否開啟防火墻:
systemctl status firewalld
- 如果開啟了,需要開放1111端口:
firewall-cmd --zone=public --add-port=1111/tcp --permanent
- 重啟防火墻:
systemctl restart firewalld.service
- 查看已經開放的端口號:
firewall-cmd --list-all
如果要開放的端口太多,嫌麻煩,可以關閉防火墻,安全性自行評估:
systemctl stop firewalld.service
五、測試訪問
http://192.168.1.104:1111/nacos
新建一個配置測試:
查看數據庫:
文章來源:http://www.zghlxwxcb.cn/news/detail-494634.html
微服務注冊:文章來源地址http://www.zghlxwxcb.cn/news/detail-494634.html
server:
port: 9002
spring:
application:
name: nacos-payment-provider
cloud:
nacos:
discovery:
#配置Nacos地址
#server-addr: localhost:8848
# 換成nginx的1111端口,做集群
server-addr: 192.168.111.144:1111
management:
endpoints:
web:
exposure:
include: '*'
到了這里,關于linux環(huán)境搭建nacos集群詳解的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!