让我们一起来部署Nacos集群吧~

这是我参与11月更文挑战的第18天,活动详情查看:2021最后一次更文挑战

本节详细探讨如何搭建一个生产可用的Nacos集群。讨论的内容主要包括:使用MySQL作为存储持久化数据,以及如何搭建Nacos集群。

一、部署架构图

部署架构图如下:

image.png

二、安装MySQL数据库

生产环境需使用MySQL作为后端存储,因此需要搭建MySQL。生产中,MySQL建议至少主备模式,高可用MySQL更佳。

注:建议使用MySQL 5.6.5+

2.1 导入初始化脚本

找到 conf/nacos-mysql.sql ,将其导入到数据库中。

2.2 配置数据库连接

找到 conf/application.properties ,添加如下内容:

# 表明用MySQL作为后端存储
spring.datasource.platform=mysql

# 有几个数据库实例
db.num=2

# 第1个实例的地址
db.url.0=jdbc:mysql://192.168.8.1:3306/nacos_devtest?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
# 第2个实例的地址
db.url.1=jdbc:mysql://192.168.12.2:3306/nacos_devtest?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456
复制代码

三、主机规划

3.1 定义集群部署的ip和端口,即cluster.conf文件

cluster.conf文件如下所示:

192.168.8.2:8848
192.168.8.3:8849
192.168.8.4:8850
复制代码

实际项目中,应该为nacos集群规划多台服务器,然后搭建过程也是一致的,只要把IP改成你对应的服务器IP就OK了。

3.2 给每个服务器配置一个Nacos文件

复制三份Nacos安装包,将 conf/application.properties 中的

server.port=8848
复制代码

分别改为:

server.port=8848
server.port=8849
server.port=8850
复制代码

3.3 启动每个Nacos

直接运行脚本 ./startup.sh 不用加 -m standalone

四、配置Nginx

完成上面的配置后,已经基本完成集群搭建的90%了,这里我们可以通过Nginx配置,为Nacos提供统一的入口,来实现一个简单的负载均衡。

Nginx配置如下

upstream nacos-server { 
    server 192.168.8.2:8848; 
    server 192.168.8.3:8849; 
    server 192.168.8.4:8850; 
} 
server { 
    listen 8847; 
    server_name localhost; 
    location /nacos/ 
    { 
        proxy_pass http://nacos-server/nacos/; 
    } 
}
复制代码

执行命令 sudo nginx启动nginx。

通过8847端口访问Nacos后台,此时Nginx会将请求分发至nacos-server下的地址中,这里默认的分发策略是线性轮询

五、有可能会遇到的问题

在集群搭建完成后,启动nacos客户端进行服务注册时报错,提示服务端没有启动,稍后再试,如下:

code:503 msg: server is STARTING now, please try again later!

  • 后台可访问只能说明nacos-consloe模块启动成功
  • 无法注册服务nacos-naming模块可能启动失败了

解决办法如下:

  • 修改hosts,在hosts文件中添加yourip hostname,例如:10.1.8.27 lars
  • 修改cluster.conf,修改集群配置文件,全部用实际ip+端口的方式,而非127.0.0.1

参考: Nacos支持三种部署模式

感谢:

猜你喜欢

转载自juejin.im/post/7032677100406767652