Nacos集群的思想:一個Nacos請求通過Nginx的反向代理完成負載均衡獲取Nacos集群節點,通過數據庫集群完成Nacos數據同步
Nacos集群的結構:
Nacos集群搭建
搭建集群的基本步驟:
- 下載Nacos
- 搭建數據庫,初始化數據庫表結構
- 配置nacos
- 啟動nacos集群
- nginx反向代理
下載並解壓Nacos
nacos在GitHub上有下載地址:https://github.com/alibaba/nacos/tags,可以選擇任意版本下載
初始化數據庫
Nacos默認數據存儲在內嵌數據庫Derby中,不屬於生產可用的數據庫,官方推薦的最佳實踐是使用帶有主從的高可用數據庫集群。
首先新建一個數據庫,命名為nacos_cluster,而后導入SQL:
配置Nacos
進入nacos的conf目錄,修改配置文件cluster.conf.example,重命名為cluster.conf
然后添加內容
127.0.0.1:8845 127.0.0.1:8846 127.0.0.1:8847
然后修改application.properties文件,添加數據庫配置
### If use MySQL as datasource: spring.datasource.platform=mysql ### Count of DB: db.num=1 ### Connect URL of DB: db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_cluster?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC db.user.0=root db.password.0=root
nacos_cluster:持久化nacos的數據
啟動
將nacos文件夾復制三份,分別命名為:nacos1、nacos2、nacos3
然后分別修改三個文件夾中的application.properties
nacos1:
server.port=8845
nacos2:
server.port=8846
nacos3:
server.port=8847
nacos1、2、3的文件夾中bin下,分別啟動三個nacos節點(默認:集群啟動):
startup.cmd
Nginx反向代理
下載地址:http://nginx.org/en/download.html
解壓到任意非中文目錄下
修改conf/nginx.conf文件,配置如下:
upstream nacos-cluster { //負責負載均衡處理 server 127.0.0.1:8845; server 127.0.0.1:8846; server 127.0.0.1:8847; } server { //反向代理 listen 80; server_name localhost; location /nacos { proxy_pass http://nacos-cluster; } }
找到nginx.exe,直接啟動
nginx.exe
瀏覽器訪問:http://localhost/nacos
項目中使用Nacos集群
bootstrap.yml 文件配置如下
spring: cloud: nacos: server-addr: localhost:80 # Nacos地址
注意:將nacos地址配置在spring.cloud.nacos的server-addr屬性下,否則在啟動微服務實例,就會出現以下錯誤: