Nacos 集群与持久化配置(2.0.+ 版)

  • Nacos 单机版
  • Nacos 集群与持久化配置(重要)
  • 准备工作(推荐使用Linux系统)
  • Nacos 集群配置步骤(重点)


Nacos 单机版

一、基于 nacos 嵌入式数据库

3、Nacos Server 需要 Java 8 的运行环境。自行安装。(Linux环境下安装 JDK8)

4、解压 Nacos 的安装包,直接运行 bin 目录下的 startup.cmd 或 linux 的 startup.sh。如果报错,也可以修改设置成独立模式(即单机版):修改 startup.cmd 的 set MODE = "standalone"

nacos hadoop部署集群 nacos 集群配置_spring cloud

5、安装运行成功后直接访问:http://localhost:8848/nacos,默认的账号密码都是:nacos。登录成功后页面如下:

nacos hadoop部署集群 nacos 集群配置_nacos hadoop部署集群_02


二、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 集群与持久化配置(重要)

一、图形解释说明如下:

nacos hadoop部署集群 nacos 集群配置_mysql_03

准备工作(推荐使用Linux系统)

1、64位 JDK 1.8+
2、Maven 3.2.x+
3、一个或多个高可用 Nginx: 4、三个或以上 Nacos
5、一个或多个高可用(主从复制) MySQL

Nacos 集群配置步骤(重点)

nacos hadoop部署集群 nacos 集群配置_nacos hadoop部署集群_04


!!!注意: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。

nacos hadoop部署集群 nacos 集群配置_mysql_05


(2)修改二:配置安装传入的端口参数启动

nacos hadoop部署集群 nacos 集群配置_mysql_06


(3)修改三:将集群模式下的堆内存与栈内存大小修改为128m。避免程序启动是,导致虚拟机无法分配内存的错误。

nacos hadoop部署集群 nacos 集群配置_nacos hadoop部署集群_07


(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 集群配置中心成功。