Nacos+mysql集群部署
一、簡介
1、環境准備
參考連接:https://www.cnblogs.com/larscheng/p/11427733.html
· JDK8安裝在各台機器上,此處不再贅述。
· Ubuntu16.04(ip:192.168.227.84/85/86)
· MySQL 5.6.5+
· Nacos-server:1.4.1
請提前下載Nacos-server:1.4.1壓縮包並解壓至相應目錄
本次的Nacos-server在linux服務器上進行啟動。
2、集群部署模式
http://ip1:port/openAPI 直連ip模式:
· ip+端口進行部署,客戶端直接連接Nacos的ip
當然ip+端口也有多種部署方式
· 1ip+n端口+Nginx:普通玩家部署方式,沒有過多服務器,單台服務器啟動多個nacos實例,僅適合測試使用
· nip+n端口+Nginx:RMB玩家部署方式,服務器資源充足,組建完美集群,實現更好的容災與隔離
無論怎么部署,部署方式都是一樣的,這里我以nip+3端口+Nginx的方式進行集群搭建
ip | 服務 | 說明 | 備注 |
---|---|---|---|
192.168.227.83 | nginx | 轉發,簡單負載均衡,提供統一入口 | 可部署在node上 |
192.168.227.84 | nacos-node1 | 節點服務 | |
192.168.227.85 | nacos-node2 | ||
192.168.227.86 | nacos-node3 | ||
192.168.227.87 | mysql | nacos外部數據源,保證數據統一性 | 可部署在node上 |
3、安裝修改配置(三台機器都操作)
(1)添加外部數據源
修改Nacos-server目錄conf/下的application.properties文件,底部添加mysql數據源
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://192.168.3.156:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=nacos
db.password=bang
注釋:3306后的nacos為你創建的數據庫
(2)修改集群配置(三台機器都操作)
cd /data/nacos/nacos/conf && mv cluster.conf.example cluster.conf
vi cluster.conf
192.168.227.84:8848
192.168.227.85:8848
192.168.227.86:8848
4、初始化數據庫(只在數據庫機器操作)
將192.168.227.87機器的mysql啟動並指定可以遠程,創建數據庫nacos。
運行初始化/data/nacos/nacos/conf/nacos-mysql.sql
二、運行nacos(三台機器都操作)
1、以集群模式啟動nacos
進入/data/nacos/nacos/bin執行sh start.sh
2、啟動查看是否正常啟動
3、查看端口是否監聽:netstat -ntlp | grep 8848
4、啟動nginx進行負載線性輪詢
這里不再贅述nginx的安裝,只配置使用,也可以將nginx安裝在三台其中一台機器上,數據庫也可以在三台機器其中一台的,端口服務不沖突即可。
upstream nacos-server {
server 192.168.227.84:8848;
server 192.168.227.85:8848;
server 192.168.227.86:8848;
}
server {
listen 8849;
server_name localhost;
location /nacos/ {
proxy_pass http://nacos-server/nacos/;
}
}
三、驗證集群
1、使用nginx的8849端口登錄。
http://47.112.97.xx:8849/nacos/
這邊使用了端口公網映射,直接內網打開也是可以的。默認賬號密碼:nacos/nacos
2、查詢集群狀況:
3、插入數據驗證集
這邊以創建用戶為例:創建了一個admin用戶
去數據庫驗證:查看已經成增加對應用戶
至此,部署完畢,其他使用方式自行研究。
注意:
nacos下的/bin/logs日志文件,如圖會一直產生占用跑滿磁盤,一個文件就400多M了
1、可以設置配置將其關閉:
nacos/conf/application.properties的103行樣子
server.tomcat.accesslog.enabled=false ##true改為false即可
2、也可以設置logrotate定時清理刪除保存幾天的日志,看了這日志和nginx沒啥區別,對我沒意義就直接是關閉的。