版本:NACOS 1.2.0
1.Nacos服务配置持久化配置
在使用Nacos对某个服务进行全局配置时会在Nacos客户端配置列表来为服务添加配置,而这些配置即使你重启Nacos也会一直存在。
因为每个Nacos服务器都自带了一个小型的嵌入式数据库derby。
虽然这样解决了服务配置持久化的问题,但是每个Nacos都自带一个derby,对于启动多个默认配置下的Nacos节点(Nacos集群),数据存储存在一致性问题。为了解决这个问题,Nacos采用集中化存储的方式支持集群部署,目前只支持MySQL存储。
所以我们需要将Nacos的数据存储由derby替换为MySQL(如果是集群部署,MySQL在 5.6.5+)。
①在 /nacos/conf 目录下找到 nacos-mysql.sql 脚本
- 创建数据库:nacos_config
CREATE DATABASE nacos_config; USE nacos_config;
- 执行 nacos-mysql.sql 脚本内容
sql语句源文件
②在 /nacos/conf 目录下找到 application.properties
在文件下方添加下面配置:
#*************** 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://1.1.1.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=user
db.password=password
完成上面两步重启Nacos就可以将数据库从derby切换为MySQL。
2.Nacos集群部署配置
上一步是Nacos集群部署的必要操作,将Nacos改为集中化的存储方式,接下来我们开始搭建Nacos集群。
Nacos集群部署说明 - 官网
官方推荐使用Linux系统,并且3个或3个以上Nacos节点才能构成集群。
下面是Nacos集群部署架构图:
这里的VIP - 虚拟IP可以简单理解为Nginx。
①配置 cluster.conf 文件
在 /nacos/conf 目录下的cluster.conf 中添加Nacos节点的ip+port。
注意:ip并不是127.0.0.1,而是通过 hostname -i 获取到的网卡ip,可以在 /etc/hosts 进行修改。
在这里我是将原来的 127.0.1.1 改为了 192.168.1.138
②修改 startup.sh 启动脚本
原生的启动脚本并没有对指定端口进行启动的配置,只是默认以8848进行启动。在Nacos集群部署中,我们需要根据不同的端口号启动不同的Nacos节点,所以我们需要修改 /nacos/bin 目录下的 startup.sh 启动脚本。
在 startup.sh 脚本中添加下面两处代码:
这样我们就可以使用 bash startup.sh -p xxxx
来指定端口号启动Nacos节点。
③Nginx 负载均衡器
在部署架构图中通过VIP,来对Nacos集群进行反向代理、负载均衡,我们通过Nginx来进行配置。
在 /nginx/conf 目录下的 nginx.conf 文件中进行配置。
- 添加Nacos集群的负载均衡列表
- 定义监听ip和port
- 定义转发地址
④测试
- 启动nginx服务器
- 分别启动端口号为3333\4444\5555的Nacos节点
- 访问 http://localhost:8848/nacos/#/clusterManagement 节点列表
Nacos集群基本部署完成。