>[info] **参考资料:**[https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html](https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html) [TOC] ## 一、说明 生产环境中部署`nacos`首先肯定是使用集群模式`cluster`保证高可用,本文主要详细介绍最佳的集群方案怎样搭建,然后`spring cloud`程序怎样集成 ## 二、集群方案 下图是官方推荐的集群方案 ![](https://img.kancloud.cn/79/f4/79f40618bdcd07b848a2073242be497d_1098x476.png) 因此开源的时候推荐用户把所有服务列表放到一个vip下面,然后挂到一个域名下面 http://ip1/:port/openAPI 直连ip模式,机器挂则需要修改ip才可以使用。 http://vip/:port/openAPI 挂载VIP模式,直连vip即可,下面挂server真实ip,可读性不好。 http://nacos.com/:port/openAPI 域名 + VIP模式,可读性好,而且换ip方便,推荐模式 > 这里的`VIP`直接使用`Nginx`就可以实现了 ## 三、方案实现 `nacos`集群最低配置是至少需要3个实例,因为我在本地搭建只有一台机器所以通过修改端口的方式来部署这3个实例,端口分别为:`8848`、`8849`、`8850` ### 3.1 修改集群配置 nacos的conf目录下有配置文件cluster.conf,请每行配置成ip:port。 ~~~ 10.80.98.110:8848 10.80.98.110:8849 10.80.98.110:8850 ~~~ > 10.80.98.110是我本机ip,三个nacos实例都配置一样即可 ### 3.2 配置 MySQL 数据库 集群模式必须使用`MySQL`数据库,生产使用建议至少主备模式,或者采用高可用数据库 #### 3.2.1 初始化 MySQL 数据库 脚本在nacos的conf目录下有配置文件nacos-mysql.sql,直接执行即可 #### 3.2.2 修改 application.properties 添加数据库配置 配置文件在nacos的conf目录下,添加以下配置 ~~~ db.num=1 db.url.0=jdbc:mysql://10.80.98.111:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true db.user=root db.password=root ~~~ > db.num 为数据库实例数量 > 如果有多个数据库实例通过 db.url.0、db.url.1..... 指定不同的数据库链接 ### 3.3 其他实例修改Nacos端口 修改nacos的conf目录下`application.properties`下的`server.port`变量,三个实例分别为:`8848`、`8849`、`8850` > 如果是不同机器部署集群的话这步可以忽略 ### 3.4 启动Nacos集群 分别把3个实例都启动起来,执行nacos的bin目录下`startup.sh`,该启动文件默认就是集群模式 ### 3.5 修改Nginx配置域名`nacos.dopan.net`绑定`VIP` 修改`conf/nginx.conf`配置 ~~~ upstream nacos { server 10.80.98.110:8848; server 10.80.98.110:8849; server 10.80.98.110:8850; } server { listen 80; server_name nacos.dopan.net; location / { proxy_pass http://nacos; } } ~~~ ### 3.6 程序集成Nacos集群 nacos的地址`server-addr`配置域名`nacos.dopan.net` ![](https://img.kancloud.cn/70/fb/70fba3f87b329fabb11893f645b1a257_542x112.png) ## 四、Nacos集群管理 ![](https://img.kancloud.cn/a6/f3/a6f358cd9ac5fa45bd08083e1db8db66_1586x258.png)