当前位置:网站首页>Nacos集群搭建和mysql持久化配置
Nacos集群搭建和mysql持久化配置
2022-04-23 18:36:00 【华为云】
@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
我这里使用的是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=mysqldb.num=1db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?useUnicode=true&characterEncoding=utf-8&useSSL=falsedb.user=rootdb.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:3333192.168.159.33:4444192.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以上才可以。==
版权声明
本文为[华为云]所创,转载请带上原文链接,感谢
https://bbs.huaweicloud.com/blogs/349223
边栏推荐
- Interpretation and compilation of JVM
- ctfshow-web361(SSTI)
- 使用 bitnami/postgresql-repmgr 镜像快速设置 PostgreSQL HA
- Daily CISSP certification common mistakes (April 11, 2022)
- Differences between SSD hard disk SATA interface and m.2 interface (detailed summary)
- Mysqldump backup database
- Stm32mp157 wm8960 audio driver debugging notes
- Ionic 从创建到打包指令集顺序
- 软件测试总结
- With the use of qchart, the final UI interface can be realized. The control of qweight can be added and promoted to a user-defined class. Only the class needs to be promoted to realize the coordinate
猜你喜欢

使用 bitnami/postgresql-repmgr 镜像快速设置 PostgreSQL HA

Multifunctional toolbox wechat applet source code

Halo open source project learning (VII): caching mechanism

Custom prompt box MessageBox in QT

Use bitnami / PostgreSQL repmgr image to quickly set up PostgreSQL ha

ctfshow-web362(SSTI)

视频边框背景如何虚化,简单操作几步实现

多功能工具箱微信小程序源码

MVVM模型

Machine learning practice - naive Bayes
随机推荐
CISSP certified daily knowledge points (April 11, 2022)
Domestic GD chip can filter
Chondroitin sulfate in vitreous
Excel intercept text
Nodejs installation
Database computer experiment 4 (data integrity and stored procedure)
Promote QT default control to custom control
ESP32 LVGL8. 1 - BTN button (BTN 15)
WiFi ap6212 driver transplantation and debugging analysis technical notes
STM32: LCD显示
机器学习实战 -朴素贝叶斯
Quantexa CDI(场景决策智能)Syneo平台介绍
K210 serial communication
视频边框背景如何虚化,简单操作几步实现
Machine learning practice - naive Bayes
Use stm32cube MX / stm32cube ide to generate FatFs code and operate SPI flash
CISSP certified daily knowledge points (April 18, 2022)
Log4j2 cross thread print traceid
Cutting permission of logrotate file
From introduction to mastery of MATLAB (2)
