Nacos叢集配置
# Nacos叢集搭建
# 1.叢集結構圖
其中包含3個nacos節點,然後一個負載均衡器代理3個Nacos。這裡負載均衡器可以使用nginx。
我們計劃的叢集結構:
三個nacos節點的地址:
| 節點 | ip | port |
| ------ | ------------- | ---- |
| nacos1 | 192.168.150.1 | 8845 |
| nacos2 | 192.168.150.1 | 8846 |
| nacos3 | 192.168.150.1 | 8847 |
# 2.搭建叢集
搭建叢集的基本步驟:
- 搭建資料庫,初始化資料庫表結構
- 下載nacos安裝包
- 配置nacos
- 啟動nacos叢集
- nginx反向代理
## 2.1.初始化資料庫
Nacos預設資料儲存在內嵌資料庫Derby中,不屬於生產可用的資料庫。
官方推薦的最佳實踐是使用帶有主從的高可用資料庫叢集,主從模式的高可用資料庫可以參考**傳智教育**的後續高手課程。
這裡我們以單點的資料庫為例來講解。
首先新建一個數據庫,命名為nacos
## 2.2.下載nacos
nacos在GitHub上有下載地址:https://github.com/alibaba/nacos/tags,可以選擇任意版本下載。
本例中才用1.4.1版本:
## 2.3.配置Nacos
將這個包解壓到任意非中文目錄下
目錄說明:
- bin:啟動指令碼
- conf:配置檔案
進入nacos的conf目錄,修改配置檔案cluster.conf.example,重新命名為cluster.conf:
然後新增內容:
```
127.0.0.1:8845
127.0.0.1.8846
127.0.0.1.8847
```
然後修改application.properties檔案,新增資料庫配置
```properties
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&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=123
```
## 2.4.啟動
將nacos資料夾複製三份,分別命名為:nacos1、nacos2、nacos3
![image-20210409213335538](assets/image-20210409213335538.png)
然後分別修改三個資料夾中的application.properties,
nacos1:
```properties
server.port=8845
```
nacos2:
```properties
server.port=8846
```
nacos3:
```properties
server.port=8847
```
然後分別啟動三個nacos節點:
```
startup.cmd
```
## 2.5.nginx反向代理
找到課前資料提供的nginx安裝包:
解壓到任意非中文目錄下:
修改conf/nginx.conf檔案,配置如下:
```nginx
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;
}
}
```
而後在瀏覽器訪問:http://localhost/nacos即可。
程式碼中application.yml檔案配置如下:
```yaml
spring:
cloud:
nacos:
server-addr: localhost:80 # Nacos地址
```
## 2.6.優化
- 實際部署時,需要給做反向代理的nginx伺服器設定一個域名,這樣後續如果有伺服器遷移nacos的客戶端也無需更改配置.
- Nacos的各個節點應該部署到多個不同伺服器,做好容災和隔離