Nacos集群和持久化配置(重要)

官方文档:集群部署说明

        Nacos默认使用嵌入式数据库(与应用程序运行在同一进程)来实现数据的存储。那么问题来了,此时我们启动多个默认配置下的 Nacos 节点,数据存储就会存在一致性的问题。

        为了解决这个问题,Nacos采用了集中式存储的方式(在外面放一个高可用的mysql集群来共用)来支持集群化部署,目前只支持MySQL的存储。

1、Nacos支持三种部署模式

  • 单机模式(用于测试和单击使用)
  • 集群模式(用于生产环境,确保数据的高可用)
  • 多集群模式(用于多数据中心场景)

2、Nacos持久化配置(Windows版本)

Nacos默认自带的是嵌入式数据库是derby。

  • (1)安装mysql数据库,版本要求:5.6.5+
  • (2)初始化mysql数据库,数据库初始化文件(nacos/conf):mysql-schema.sql

  • (3)打开这个sql脚本复制里面的sql语句前往Mysql数据库图形化工具中执行一下(执行之前自己先创建一个数据库,我这里命名为 nacos_config):

  • (4)修改nacos/conf 目录下的application.properties配置文件,增加支持mysql数据源的配置(目前只支持mysql),添加mysql数据源的URL、用户名和密码(添加在末尾即可):

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=root
  • (5)重新启动Nacos,可以看到是个全新的空记录界面,以前数据源是derby

  • (6)在Nacos中添加一个配置,去数据库中可以查到说明数据库切换成功:

 3、Linux版Nacos+MySQL生产环境配置

(1) 进入Nacos下载官网下载Linux版nacos

(2)将下载的压缩包传到Linux服务器上,我使用的是XFTP上传的

解压命令:tar -zxvf nacos-server-1.4.1.tar.gz

(3)切换数据源方式和windows上相同,先找到nacos/config/nacos-mysql.sql,复制里面的内容到Linux数据库上执行

(4)进入nacos/config/application.properties中添加配置:

spring.datasource.platform=mysql
 
db.num=1
db.url.0=jdbc:mysql://47.105.220.36:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=root

(5)Linux服务器上nacos的集群配置nacos/config/cluster.conf

        梳理出3台nacos的不同服务端口号。修改cluster.conf.example之前先拷贝一下,修改拷贝的文件:

 (6)进入这个配置文件就可以配置nacos集群,配置文件中的IP不能写127.0.0.1,必须写Linux命令hostname -i能够识别的IP,查看当前服务器hostname:

(7)编辑Nacos启动脚本 /home/nacos/nacos/bin/startup.sh,使它能够接受不同的端口

        单机版启动的时候,./startup.sh即可。但是,集群启动的时候,我们希望能够传递不同的端口号启动不同的nacos实例。
        命令:./startup.sh -p 3333 表示启动端口号为3333的nacos服务器实例,和上一步的cluster.conf配置的保持一致。

 (8)Nginx的配置,由它作为负载均衡器(没有安装nginx先安装nginx,安装步骤略)

修改Nginx的配置文件,在修改nginx.config之前最好先拷贝一份然后修改,共修改以下三处:

(9)进入nginx安装目录下的sbin目录下,执行命令启动nginx:

  ./nginx -c /nginx安装目录/conf/nginx.conf

(10)截止到此处,1个Nginx+3个Nacos注册中心+1个MySQL搭建完成

  •   测试通过nginx访问nacos:http://47.105.220.36:1111/nacos/#/login
  •   启动nacos(进入nacos/bin目录下执行三次分别在端口3333/4444/5555启动nacos集群):.startup.sh -p 3333/4444/5555

【因为内存问题,这里仅启动一台nacos3333进行测试】

查看启动的nacos服务数量命令:ps -ef|grep nacos|grep -v grep|wc -l

在这里插入图片描述

 (11)启动之后通过访问:http://服务器ip:1111/nacos/#/login,就能够访问到nacos的登录管理界面及说明nacos集群安装配置成功!

### 回答1: 要使用MySQL 8.作为Nacos持久化存储,需要进行以下步骤: 1. 安装MySQL 8.,并创建一个新的数据库和用户。 2. 下载Nacos的最新版本,并解压缩到本地。 3. 进入Nacos的conf目录,编辑application.properties文件,将以下配置添加到文件末尾: ``` spring.datasource.platform=mysql db.num=1 db.url.=jdbc:mysql://localhost:3306/nacos?characterEncoding=utf8&connectTimeout=100&socketTimeout=300&autoReconnect=true db.user=root db.password=123456 ``` 其中,db.url.是MySQL数据库的连接地址,db.user和db.password是数据库的用户名和密码。 4. 启动Nacos服务,它将自动使用MySQL 8.作为持久化存储。 5. 如果需要更改数据库配置,可以编辑application.properties文件并重新启动Nacos服务。 注意:在使用MySQL 8.时,需要将MySQL的密码加密方式设置为mysql_native_password。可以使用以下命令更改用户的密码加密方式: ``` ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password'; ``` 其中,'root'是MySQL的用户名,'new_password'是新的密码。 ### 回答2: Nacos是一款分布式配置中心和元数据管理系统,它支持将配置数据持久化数据库中,而MySQL8.0是一款开源的关系型数据库。 将Nacos配置持久化到MySQL8.0中,需要进行以下步骤: 1. 准备MySQL8.0数据库(可以使用docker快速搭建数据库环境),并创建一个新的数据库和相关的用户及权限。 2. 下载nacos-server版本,并进行解压和配置。 3. 打开nacos/conf/nacos-mysql.sql文件,将其中的sql脚本在新建的数据库中执行,以创建必要的表结构和索引。 4. 配置nacos/conf/application.properties文件,修改如下配置: ```java #启用MySQL持久化配置 spring.datasource.platform=mysql db.num=1 db.url.0=jdbc:mysql://localhost:3306/nacos?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&serverTimezone=GMT%2B8&useSSL=false db.user=root db.password=root ``` 其中,db.url.0需要修改为MySQL的连接地址,db.user和db.password根据实际情况进行修改。 5. 启动Nacos服务,使用浏览器访问http://localhost:8848/nacos,输入用户名和密码进行登录。 以上步骤完成后,Nacos就会将所有的配置保存到MySQL数据库中,以保证数据的持久化。 需要注意的是,MySQL8.0与之前版本略有不同,需要修改部分配置项,例如url中添加serverTimezone=GMT%2B8选项,否则会出现时间解析异常的问题。此外,在配置MySQL的时候,建议采用UTF-8编码,以支持中文等多语言配置。 总的来说,使用MySQL8.0作为Nacos持久化存储是十分可行的,而且功能也十分强大,能够满足大部分企业的需求。 ### 回答3: Nacos是一款分布式的服务发现和配置管理平台,它的作用是帮助开发者更好地管理和维护配置文件,同时提供了高可用性、高可扩展性、高性能和易于维护等优势。而Nacos持久化配置则可以将配置信息持久化数据库中,以保证配置信息的安全性和数据可靠性。在这里我们将介绍如何使用MySQL8.0来实现Nacos持久化配置。 首先,我们需要配置MySQL8.0的相关参数: 1、创建一个新的数据库实例,并分配一个新的用户和密码。 2、设置MySQL的字符集为UTF-8,以免出现中文乱码的问题。 3、创建一个新的数据表用于存储配置信息,数据表的结构可以参考Nacos的GitHub仓库。 接下来,我们需要在Nacos配置文件中进行以下配置: 1、在nacos-server.jar所在的目录下创建一个新的文件夹,例如”nacos-data”。 2、修改nacos配置文件,指定nacos持久化位置为“nacos-data”文件夹,并设置相应的数据库连接参数。 3、启动nacos,创建需要的配置信息,通过设置数据库连接参数,将配置信息持久化到MySQL数据库中。 4、启动nacos,从MySQL数据库中读取配置信息。在启动时,nacos会先从MySQL数据库中加载配置信息,然后再将它们加载到内存中。 总之,Nacos持久化配置功能可以使开发者以更加安全、可靠和高效的方式管理和维护配置信息。通过MySQL8.0的配置,我们可以将配置信息存储在数据库中,并通过nacos的自动读取和加载配置信息,保证了数据的可靠性、安全性和高性能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星悦糖

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值