Nacos集群搭建和mysql持久化配置

网友投稿 781 2022-05-30

@toc

这篇很重要,因为生产环境中为了高可用都是使用的nacos集群,单节点的服务注册这些你跟着官网配置都可以,但是集群是必须要会的。

1、Nacos集群部署架构

生产环境大多使用集群模式以确保高可用。

nacos集群架构图如下:

nacos支持三种部署模式:

单击模式:用于测试和单击试用。

集群模式:用于生产环境,确保高可用。

多集群模式:用于多数据中心场景。

因此开源的时候推荐用户把所有服务列表放到一个vip下面,然后挂到一个域名下面

http://ip1:port/openAPI 直连ip模式,机器挂则需要修改ip才可以使用。

http://SLB:port/openAPI 挂载SLB模式(内网SLB,不可暴露到公网,以免带来安全风险),直连SLB即可,下面挂server真实ip,可读性不好。

http://nacos.com:port/openAPI 域名 + SLB模式(内网SLB,不可暴露到公网,以免带来安全风险),可读性好,而且换ip方便,推荐模式

这里吐槽一点,阿里巴巴的文档写的不是很全,可能阿里大佬太多,以为上面那张图咱能看懂吧,你如果看到上面的架构图能立马翻译成下面这种,那说明你真的懂了。

上面的架构图并没有具体说明SLB是什么,实际上上面的架构图翻译成下面这种看起来是不是很熟悉。

2、Nacos持久化配置解释

由于Nacos默认自带的是嵌入式数据库derby,这样不方便我们使用工具实时检测,所以这里改用Mysql持久化nacos的配置。

derby切换到mysql的步骤:

先去conf文件夹下面找到nacos-mysql.sql这条脚本,然后在自己的数据库中执行该脚本,执行之后的效果如下:

再去修改conf文件夹下面的application.properties文件,增加数据库配置文件:

示例如下:

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

3.1 集群规划

准备三个nacos节点

nacos01节点:192.168.159.33:3333

nacos02节点:192.168.159.33:4444

nacos03节点:192.168.159.33:5555

准备一个nginx

准备一个mysql:192.168.159.33:3306

即1个nginx+3个nacos节点+1个mysql的低配集群。

这里为了简单,nginx和mysql并没有使用集群搭建,效果是一样的。

当然了,如果你嫌三台节点都在同一个虚拟机中搭建不合理,那你也可以启动三台虚拟机,然后修改下ip即可。

3.2 nacos的linux版本安装

下载地址:https://github.com/alibaba/nacos/releases/tag/1.4.1

Nacos集群搭建和mysql持久化配置

我这里使用的是1.4.1版本,

下载之后直接解压就能用了。

目录如下:

3.3 linux服务器上的mysql数据库配置

将conf文件夹下面的nacos-mysql.sql脚本在mysql中执行。

执行之后查看结果

3.4 复制三份nacos文件

我们这里使用nacos01、nacos02、nacos03,只是为了测试,生产环境中请在不同的节点上面配置。

3.5 修改application.properties

修改/conf文件夹下面的application.properties文件,增加mysql持久化配置。

nacos01、nacos02、nacos03中都需要做如下修改:

spring.datasource.platform=mysql db.num=1 db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?useUnicode=true&characterEncoding=utf-8&useSSL=false db.user=root db.password=123456

3.6 修改cluster.conf

在nacos01文件夹中修改/conf文件夹下面的cluster.conf

初始是没有的,只有个cluster.conf.example,

我们执行命令cp cluster.conf.example cluster.conf即可。

然后执行vim cluster.conf命令编辑该文件

增加如下配置:

192.168.159.33:3333 192.168.159.33:4444 192.168.159.33:5555

现在只配置了nacos01,我们直接将该文件复制到nacos02和nacos03对应的文件夹中即可。

执行如下命令:

cp cluster.conf /usr/local/nacos02/conf/ cp cluster.conf /usr/local/nacos03/conf/

3.7 修改三台节点的端口号

分别修改三台节点的/conf文件夹下面的application.properties文件。

将nacos01、nacos02、nacos03的端口号分别修改为3333、4444、5555

nacos01:

vim /usr/local/nacos01/conf/application.properties

nacos02:

vim /usr/local/nacos02/conf/application.properties

nacos03:

vim /usr/local/nacos03/conf/application.properties

3.8 启动三台nacos节点

分别进入到三台节点的/bin文件下面执行如下命令

startup.sh

从上图可以发现,都是以集群模式(cluster)启动的。

访问三台节点的控制台查看是否成功:

http://192.168.159.33:3333/nacos

http://192.168.159.33:4444/nacos

http://192.168.159.33:5555/nacos

3.9 使用nginx做负载均衡

修改nginx的配置文件

vim nginx.conf

添加如下配置:

这里配置的意思是让nginx监听1111端口(你让它监听80端口也是可以的)

启动nginx

cd sbin ./nginx -c /usr/local/nginx/conf/nginx.conf

3.10 集群测试

截止到此处,1个nginx+3个nacos注册中心+1个mysql的配置就搭建完成了。

测试Nginx访问nacos:http://192.168.159.33:1111/nacos

新建一个配置测试:

分别查看三台节点是不是都有该配置,

nacos01:

nacos02:

nacos03:

查看linux服务器中的mysql是否多了一条记录

3.11 微服务注册测试

微服务cloudalibaba-provider-payment9002启动注册进nacos集群

修改application.yml文件的nacos注册地址为:192.168.159.33:1111,注意,这是nginx的监听的地址,由它负载均衡之后交给192.1168.159.33:3333、192.1168.159.33:4444、192.1168.159.33:5555这三台节点中的一个处理。

启动该微服务之后,去nacos控制台查看是否注册成功。

到此,集群搭建与持久化配置就介绍完了,这里你完全可以将nginx和mysql也是用集群搭建,实现真正的高可用集群。

==注意:这里你如果用单台虚拟机模拟的话,内存要在3G以上才可以。==

MySQL Nginx Spring Cloud 弹性负载均衡 ELB 微服务

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:浅谈JS、Ajax、JQuery之间的关系
下一篇:Google Earth Engine(GEE)——TensorFlow支持深度学习等高级机器学习方法(非免费项目)
相关文章