Nacos 集群与持久化配置(2.0.+ 版)
Nacos 单机版
一、基于 nacos 嵌入式数据库
1、Nacos
的下载地址:https://nacos.io/zh-cn/
2、官网开发手册说明:https://nacos.io/zh-cn/docs/deployment.html
3、Nacos Server 需要 Java 8
的运行环境。自行安装。(Linux环境下安装 JDK8)
4、解压 Nacos 的安装包,直接运行 bin 目录下的 startup.cmd 或 linux 的 startup.sh。如果报错,也可以修改设置成独立模式(即单机版):修改 startup.cmd 的 set MODE = "standalone"
5、安装运行成功后直接访问:http://localhost:8848/nacos,默认的账号密码都是:nacos
。登录成功后页面如下:
二、Nacos 自带 derby 嵌入式数据库
切换到 MySQL数据库
(持久化)
1、默认 Nacos 使用嵌入式数据库(derby)
实现的存储。所以,如果启动多个默认配置的Nacos节点,数据存储是存在一致性
问题的。为了解决这个问题,Nacos 采用集中式存储的方式来支持集群化部署,目前只支持MySQL的存储。
2、derby 切换到 mysql 数据库步骤:
(1)首先创建 nacos_config
数据库:设置并指定 执行引擎Innodb
、字符编码UTF-8
等。
(2)执行 sql 脚本:/nacos-server-2.0.3/nacos/conf/nacos-mysql.sql。
(3)进入 nacos 的 config 文件夹下找到 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&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=root
db.password=123456
Nacos 集群与持久化配置(重要)
一、官网开发手册说明及架构图:https://nacos.io/zh-cn/docs/deployment.html。图形解释说明如下:
准备工作(推荐使用Linux系统)
1、64位 JDK 1.8+
2、Maven 3.2.x+
3、一个或多个高可用 Nginx:https://blog.csdn.net/qq_36763419/article/details/109534815
4、三个或以上 Nacos
5、一个或多个高可用(主从复制) MySQL
Nacos 集群配置步骤(重点)
!!!注意:nacos 按照步骤配置完成后复制两份
并修改 application.properties
配置文件的 server.port
服务端口号。
1、Linux 服务器上 MySQL 数据库配置
(1)首先创建 nacos_config
数据库:设置并指定 执行引擎Innodb
、字符编码UTF-8
等。
(2)执行 sql 脚本:/nacos-server-2.0.3/nacos/conf/nacos-mysql.sql。
2、application.properties 配置
#修改nacos 的启动端口号为8840作为集群的第一个节点
server.port=8840
# 数据源类型
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&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=root
db.password=123456
3、Linux 服务器上 Nacos 的集群 cluster.conf
# 配置格式 ip:port ,注意:这个 ip 不能写127.0.0.1 或 localhost ,必须是 Linux 命令 hostname -i 能够识别的 IP,或通过 ifconfig 可以查到 ip。
192.168.253.130:8840
192.168.253.130:8850
192.168.253.130:8860
4、编辑 Nacos 的启动脚本 startup.sh,使它能够接受不同的启动端口
通常单机版的启动,都是 ./startup.sh
即可。但是,集群启动,我们希望可以类似其他软件的 shell 命令,可以传递不同的端口号启动不同的 nacos 实例
。命令:./start.sh -p port
表示启动端口号,启动的端口号和 cluster,conf 中配置的一致。
(1)修改一:修改配置传入的参数,即 p 表示的是端口 port。
(2)修改二:配置安装传入的端口参数启动
(3)修改三:将集群模式下的堆内存与栈内存大小修改为128m。避免程序启动是,导致虚拟机无法分配内存的错误。
(4)启动 nacos 集群,分别进入 nacos8840、nacos8850、nacos8860
的 bin 目录下,通过指定端口启动
# ./starup.sh -p <port>
./startup.sh -p 8840
# 或
sh /.../nacos/bin/startup.sh -p <port>
# 验证三个节点,如果是 3 则表示三个 nacos 节点全部启动成功
ps -ef|grep nacos | grep -v grep|wc -l
5、Nginx 的配置,由它作为负载均衡器
(1)修改 Nginx 的配置文件:nginx.conf
http{
# upstream 模块不能使用下划线命名,Nginx不能识别
upstream nacosCluster{
server 127.0.0.1:8840;
server 127.0.0.1:8850;
server 127.0.0.1:8860;
}
server {
listen 8848;
server_name localhost;
location / {
proxy_pass http://nacosCluster;
}
}
}
(2)进入目录下,按照指定启动:
cd /usr/local/nginx/sbin
./nginx -c /usr/local/nginx/conf/nginx.conf
6、访问 nginx ,转发结果如下
7、启动我们的微服务并注册 nacos 集群
中
8、配置中心配置:在 nacos 配置管理界面中创建的配置,能够在 mysql 数据库中的 config_info 表中插入一条数据,即 nacos 集群配置中心成功。