天天看點

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:

server.port=8845

nacos2:

server.port=8846

nacos3:

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的各個節點應該部署到多個不同伺服器,做好容災和隔離