大佬置顶: nacos无法注册到服务中心问题,这位大佬写的很好 传送门
1.介绍:
1 |
生产环境中部署nacos首先肯定是使用集群模式cluster保证高可用。 |
2.集群部署架构图
1 |
nacos 官方推荐用户把所有服务列表放到一个vip下面,然后挂到一个域名下面 |
- http://ip1:port/openAPI 直连ip模式,机器挂则需要修改ip才可以使用。
- http://VIP:port/openAPI 挂载VIP模式,直连vip即可,下面挂server真实ip,可读性不好。
- http://nacos.com:port/openAPI 域名 + VIP模式,可读性好,而且换ip方便,推荐模式
官方推荐使用域名 + VIP模式的集群部署方案,所有我接下的演示都是基于此模式来实现的

注意: 这里的VIP直接使用 Nginx就可以实现了(如果你安装了keepalived nginx中就不要再做负载均衡了,直接转发到nacos即可,多级负载会使程序无法注册)
我这里使用的是keepalived + nginx
3.域名 + VIP模式集群方案的实现
官方建议至少3个或3个以上的节点来实现集群模式(我本地准备了3台机器)
1 2 |
注意:如果你在本地搭建只有一台机器,没有使用虚拟机,你需要通过修改端口的方式来部署这3个实例,端口分别为:8851、8849、8850 如果你是多台机器,可以不用改端口,保持默认端口即可,当然你也可以根据自身情况自定义每台机器的端口。 |
1.准备工作(配置存储数据库)
1 |
集群模式必须使用MySQL数据库,生产使用建议至少主备模式,或者采用高可用数据库。我的本地机器已经提前安装了mysql(MGR)高可用。 |
2.下载nacos
1 2 3 |
下载地址1: https://www.nagios.com/downloads/nagios-fusion/ 下载地址2: https://github.com/alibaba/nacos/releases/tag/2.0.1 下载后解压到 /opt/nacos |
3.初始化 MySQL 数据库
1 2 3 |
1.创建nacos数据库 create database nacos 2.导入数据库脚本,脚本在nacos的conf目录下有配置文件nacos-mysql.sql,直接执行即可 |
4. 添加数据库配置(三个实例都要做此配置)
配置文件在nacos的conf目录下的application.properties,添加以下配置
1 2 3 4 5 6 7 8 9 10 11 12 |
#*************** Config Module Related Configurations ***************# ### If user MySQL as datasource: spring.datasource.platform=mysql ### Count of DB: db.num=1 ### Connect URL of DB: db.url.0=jdbc:mysql://192.168.6.122:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true db.user=shooter db.password=123456 |
- db.num 为数据库实例数量
- db.url.0 指定不同的数据库连接
- 如果有多个数据库实例通过 db.url.0、db.url.1… 指定不同的数据库连接
- spring.datasource.platform=mysql 指定数据库类型为mysql

5.修改其他实例修改Nacos端口(我有三台机器,本来可以不用修改端口的,为了演示方便,我还是改一下)
1 |
修改nacos的conf目录下application.properties下的server.port,三个实例分别为:8851、8849、8850 |

6.修改集群配置(三台机器都要修改)
1 |
nacos的conf目录下有配置文件cluster.conf,请每行配置成ip:port |
1 2 3 |
192.168.6.121:8848 192.168.6.122:8849 192.168.6.123:8850 |

7.开启登录验证(密码登录验证)(三台都要改)
1 2 3 4 |
修改nacos的conf目录下application.properties中的 nacos.core.auth.enabled=false 修改为 nacos.core.auth.enabled=true |
8.启动Nacos集群
1 |
分别把3个实例都启动起来,执行nacos的bin目录下startup.sh,该启动文件默认就是集群模式。 |
9.修改Nginx配置(三台都要修改)(因为我有keepalived做vip负载所以我是如下配置)
1 2 3 4 5 6 7 8 9 |
server { listen 80; server_name www.shooter.com; location / { proxy_pass http://你的本机ip:8849/nacos/; } } |
如果你是nginx做vip负载,则做如下配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
修改conf/nginx.conf配置 upstream nacos { server 192.168.28.130:8851; server 192.168.28.130:8849; server 192.168.28.130:8850; } server { listen 80; server_name www.shooter.com; location / { proxy_pass http://nacos/nacos; } } |
配置域名www.shooter.com绑定VIP映射到本地host来进行访问

nagos无法注册到服务中心问题,这位大佬写的很好 传送门
- 本文固定链接: https://www.yoyoask.com/?p=3141
- 转载请注明: shooter 于 SHOOTER 发表