官方文檔地址:https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html
官方推薦集群部署方式:
1、http://ip1:port/openAPI 直連ip模式,機器掛則需要修改ip才可以使用。
2、http://SLB:port/openAPI 掛載SLB模式(內網SLB,不可暴露到公網,以免帶來安全風險),直連SLB即可,下面掛server真實ip,可讀性不好。
3、http://nacos.com:port/openAPI 域名 + SLB模式(內網SLB,不可暴露到公網,以免帶來安全風險),可讀性好,而且換ip方便,推薦模式
官方文檔中教程不夠詳細,下面開始詳細搭建環境:
一、環境准備:
1、64 bit OS Linux/Unix/Mac,推薦使用Linux系統
2、64 bit JDK 1.8+
3、Maven 3.2.x+ (具體安裝方法網上很多,在此不詳細介紹)
4、3個或3個以上Nacos節點才能構成集群
二、安裝包下載:
地址:https://github.com/alibaba/nacos/releases 下拉找到需要的版本下載
三、Mysql配置:
如果使用內置數據源,則可以略過此步驟。
在此我們使用外置數據源,生產使用建議至少主備模式,或者采用高可用數據庫。
此處為方便起見,就使用mysql一個節點進行配置
- 新建數據庫,執行nacos-server-1.4.1.tar.gz包下nacos/conf/nacos-mysql.sql文件,得到如下圖所示內容即可
四、Nacos安裝與配置:
三台服務器地址:172.22.9.171、172.22.9.172、172.22.9.173,每台服務器配置過程完全一樣,此處只舉例一台
# 解壓縮 tar -xvzf nacos-server-1.4.1.tar.gz -C /opt/ # 復制配置文件 cd /opt/nacos/conf/ cp cluster.conf.example cluster.conf # 集群文件中增加服務器節點信息 vi cluster.conf
# 修改配置文件中數據源信息 vi application.properties
...
#*************** Spring Boot Related Configurations ***************# ### Default web context path: server.servlet.contextPath=/nacos ### Default web server port: server.port=8848
...
#*************** Config Module Related Configurations ***************# ### If use MySQL as datasource: spring.datasource.platform=mysql ### Count of DB: db.num=1 ### Connect URL of DB: db.url.0=jdbc:mysql://172.22.9.37:3306/dev_nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC db.user.0=dev db.password.0=dev ### Connection pool configuration: hikariCP db.pool.config.connectionTimeout=30000 db.pool.config.validationTimeout=10000 db.pool.config.maximumPoolSize=20 db.pool.config.minimumIdle=2
...
如上圖所示,截取部分配置文件片段,紅色部分需要自行配置,對應步驟三種mysql數據源
五、Nacos開機自啟動配置:
# 創建nacos服務文件 touch /lib/systemd/system/nacos.service # 編輯文件 vi /lib/systemd/system/nacos.service
寫入自啟動配置
[Unit] Description=nacos After=network.target [Service] Type=forking ExecStart=/opt/nacos/bin/startup.sh ExecReload=/opt/nacos/bin/shutdown.sh ExecStop=/opt/nacos/bin/shutdown.sh PrivateTmp=true [Install] WantedBy=multi-user.target
修改 /opt/nacos/bin/startup.sh 文件中jdk路徑,此處需對應自己服務器上的jdk路徑,使用$JAVA_HOME似乎讀取不到,所以直接寫了絕對路徑
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/local/jdk1.8.0_191/ #[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=$HOME/jdk/java #[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java #[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/opt/taobao/java #[ ! -e "$JAVA_HOME/bin/java" ] && unset JAVA_HOME
更新自啟動配置,啟動nacos集群
systemctl daemon-reload
systemctl enable nacos.service
systemctl start nacos.service
systemctl status nacos.service
六、查看Nacos集群情況:
瀏覽器打開地址:http://172.22.9.172:8848/nacos/ 用戶名密碼默認:nacos/nacos (之前配置的數據庫中users表中)
七、通過Nginx配置集群:
待更新