当前位置:网站首页>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
边栏推荐
- logstash 7. There is a time problem in X. the difference between @ timestamp and local time is 8 hours
- iptables -L执行缓慢
- Hard core parsing promise object (do you know these seven common APIs and seven key questions?)
- 七、DOM(下) - 章节课后练习题及答案
- The first leg of the national tour of shengteng AI developer creation and enjoyment day was successfully held in Xi'an
- Daily CISSP certification common mistakes (April 14, 2022)
- 硬核解析Promise對象(這七個必會的常用API和七個關鍵問題你都了解嗎?)
- STM32: LCD显示
- 使用 bitnami/postgresql-repmgr 镜像快速设置 PostgreSQL HA
- On iptables
猜你喜欢
Halo open source project learning (VII): caching mechanism
Custom prompt box MessageBox in QT
ctfshow-web362(SSTI)
【ACM】509. 斐波那契数(dp五部曲)
Use bitnami / PostgreSQL repmgr image to quickly set up PostgreSQL ha
解决:cnpm : 無法加載文件 ...\cnpm.ps1,因為在此系統上禁止運行脚本
Imx6 debugging LVDS screen technical notes
Nodejs installation
STM32 learning record 0008 - GPIO things 1
Creation and use of QT dynamic link library
随机推荐
Daily CISSP certification common mistakes (April 18, 2022)
Iptables - L executes slowly
CISSP certified daily knowledge points (April 12, 2022)
Tangle
14 py games source code share the second bullet
Mysqldump backup database
22 year flying Book manpower Kit
CISSP certified daily knowledge points (April 13, 2022)
From introduction to mastery of MATLAB (2)
Test post and login function
How to virtualize the video frame and background is realized in a few simple steps
In win10 system, all programs run as administrator by default
Daily network security certification test questions (April 18, 2022)
logstash 7. There is a time problem in X. the difference between @ timestamp and local time is 8 hours
Ctfshow - web362 (ssti)
Résolution: cnpm: impossible de charger le fichier... Cnpm. PS1 parce que l'exécution de scripts est désactivée sur ce système
使用 bitnami/postgresql-repmgr 镜像快速设置 PostgreSQL HA
Matlab tips (6) comparison of seven filtering methods
Analysez l'objet promise avec le noyau dur (Connaissez - vous les sept API communes obligatoires et les sept questions clés?)
Golang 语言实现TCP UDP通信