Nacos配置(集群和持久化配置)
Nacos配置(集群和持久化配置)
Nacos的部署模式
Nacos支持三种部署模式:
- 单机模式,用于测试和单机试用,我们之前使用的就是单机模式启动。
- 集群模式,用于生产环境,确保高可用。
- 多集群模式,用于多数据中心场景。
Nacos集群部署说明
Nacos的集群部署架构图如下:
此处的VIP是虚拟映射IP,可以由Nginx实现。
默认nacos使用嵌入式的数据库实现数据的存储,所以,如果启动多个默认配置下的Nacos节点,数据存储是存在一致性问题的。为了解决这个问题,Nacos采用集中式存储的方式来支持集群化部署,目前只支持MySQL的存储。
集群配置
2.1、配置集群配置文件
在nacos的解压目录nacos/的conf目录下,有配置文件cluster.conf,请每行配置成ip:port。(请配置3个或3个以上节点)
首先我们进入conf目录下,默认只有一个cluster.conf.example文件,我们需要自行复制一份,修改名称为cluster.conf
cd /usr/local/nacos/config
cp cluster.conf.example cluster.conf
然后使用vi编辑器 打开cluster.config,按a/i/o 键可进入插入模式,输入以下内容
ip:port
68.54.243.17:3333
68.54.243.17:4444
68.54.243.17:5555
然后按ESC键返回到命令模式,再按shif+:进入末行模式,输入wq敲回车(保存并退出)。
初始化mysql
没有可视化界面的Linux我们不便操作,所以对mysql的操作,我在windows下使用navicat连接到之前在linux中安装的mysql再进行操作
注:需要对linux进行联网和mysql远程连接授权,再放行我们所需的端口(图方便的伙伴在练习的时候可直接关闭防火墙)
新建一个名为nacos_config的数据库,执行下面的sql脚本文件。
nacos\conf目录下:
配置application.properties
这里的配置文件路径同1.3
添加持久化配置
application.properties文件中
#server.tomcat.basedir=
db.num=1
db.url.0=jdbc:mysql://10.51.10.128:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456
修改启动文件
启动服务
三台linux机都输入以下命令启动nacos server服务
startup.sh
如果使用一台服务器可以修改启动文件
单机模式支持mysql持久化
在单机模式下,0.7版本之前,默认nacos使用嵌入式的数据库derby实现数据的存储,不方便观察数据存储的基本情况。
0.7版本增加了支持mysql数据源能力,具体的操作步骤:
一、安装数据库,版本要求:5.6.5+。
二、初始化mysql数据库,数据库初始化文件:conf/nacos-mysql.sql
。执行这个脚本之前,需要按照脚本中的提示,创建指定的数据库。
/******************************************/
/* 数据库全名 = nacos_config */
/******************************************/
三、修改conf/application.properties
文件,增加支持mysql数据源配置(目前只支持mysql),添加mysql数据源的url、用户名和密码。只要把properties中的注释打开就可以了。
测试一下,新建一个配置,在config_info
就将存入一条记录。
posted on 2021-12-09 22:08 Chase_Hanky 阅读(1467) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了