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的各个节点应该部署到多个不同服务器,做好容灾和隔离

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM