- YML
bootstrap
application
14.5 Nacos集群和持久化配置(重要)
14.5.1 官网说明
- 官网: https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html
- 官网架构图(写的o(╥﹏╥)o):
- 上图官网翻译,真实情况
- 说明
默认Nacos使用嵌入式数据库实现数据的存储。所以,如果启动多个默认配置下的Nacos节点,数据存储是存在一致性问题的。
为了解决这个问题,Nacos采用了**集中式存储的方式来支持集群化部署,目前只支持MySQL的存储。**
14.5.2 Nacos持久化配置解释
1.Nacos默认自带的是嵌入式数据库derby
https://github.com/alibaba/nacos/blob/develop/config/pom.xml
2.derby到mysql切换配置步骤
- nacos-server-1.1.4\nacos\conf目录下找到sql脚本:nacos-config.sql,并进行执行
- nacos-server-1.1.4\nacos\conf目录下找到application.properties
spring.datasource.platform=mysql db.num=1 db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true db.user=root db.password=123456
3.启动Nacos,可以看到是个全新的空记录界面,因为以前是记录进derby,现在是mysql
4.新建一个配置,配置信息被存储到mysql数据库中
14.5.3 Linux版Nacos+MySQL生产环境配置
预计需要,1个Nginx+3个nacos注册中心+1个mysql
1.Nacos下载Linux版
https://github.com/alibaba/nacos/releases/tag/1.3.2 下载 nacos-server-1.3.2.tar.gz,然后进行安装
2.Linux服务器上mysql数据库配置
windows远程连接Linux中的数据库,执行nacos-mysql.sql文件.
3.application.properties 配置
位置
内容:
application.properties 文件打开后的最后面,配置如下内容:
spring.datasource.platform=mysql db.num=1 db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true db.user=root db.password=123456
4.Linux服务器上nacos的集群配置cluster.conf
打开nacos/conf/cluster.conf添加内容:
这个IP不能写127.0.0.1,必须是Linux命令hostname -i能够识别的IP
5.编辑Nacos的启动脚本startup.sh,使它能够接受不同的启动端口
/mynacos/nacos/bin 目录下有startup.sh
平时模式是以集群的方式启动的,如果要以单机启动: ./startup.sh -m standalone 即可。
但是集群启动,我们希望可以类似其它软件的shell命令,传递不同的端口号启动不同的nacos实例。
命令:./startup.sh -p 3333 表示启动端口号为3333的nacos服务器实例,和上一步的cluster.conf配置的一致。
修改内容:
6.启动集群
7.Nginx的配置,由它作为负载均衡器
- 修改nginx的配置文件
- 修改nginx.conf
- 按照指定启动
8.测试集群是否配置成功
截止到此处,1个Nginx+3个nacos注册中心+1个mysql已经配置完成
- 测试通过nginx访问nacos
访问:http://192.168.174.128:1111/nacos/#/login
- 新建一个配置测试,linux服务器的mysql便插入一条记录
9.微服务cloudalibaba-provider-payment9002启动注册进nacos集群
- 修改YML
- 运行结果
高可用小总结