当前位置:网站首页>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
边栏推荐
- 解决:cnpm : 无法加载文件 ...\cnpm.ps1,因为在此系统上禁止运行脚本
- 【科普】CRC校验(一)什么是CRC校验?
- ctfshow-web362(SSTI)
- QT excel operation summary
- In shell programming, the shell file with relative path is referenced
- K210 serial communication
- 14个py小游戏源代码分享第二弹
- Use of regular expressions in QT
- Machine learning theory (7): kernel function kernels -- a way to help SVM realize nonlinear decision boundary
- Chondroitin sulfate in vitreous
猜你喜欢
MVVM模型
解决:cnpm : 无法加载文件 ...\cnpm.ps1,因为在此系统上禁止运行脚本
使用 bitnami/postgresql-repmgr 镜像快速设置 PostgreSQL HA
Halo open source project learning (VII): caching mechanism
Function recursion and solving interesting problems
STM32学习记录0008——GPIO那些事1
ctfshow-web361(SSTI)
ctfshow-web362(SSTI)
Halo 开源项目学习(七):缓存机制
Nodejs installation
随机推荐
Gson fastjason Jackson of object to JSON difference modifies the field name
Teach you to quickly rename folder names in a few simple steps
Kettle paoding jieniu Chapter 17 text file output
MVVM模型
Ucosiii transplantation and use, reference punctual atom
使用 bitnami/postgresql-repmgr 镜像快速设置 PostgreSQL HA
Multifunctional toolbox wechat applet source code
Promote QT default control to custom control
回路-通路
Ionic instruction set order from creation to packaging
Daily CISSP certification common mistakes (April 19, 2022)
STM32: LCD display
【ACM】70. 爬楼梯
os_authent_prefix
Cygwin64 right click to add menu, and open cygwin64 here
七、DOM(下) - 章节课后练习题及答案
C language simulates entering and leaving the stack, first in first out, first in first out, shared memory
kettle庖丁解牛第17篇之文本文件输出
The first leg of the national tour of shengteng AI developer creation and enjoyment day was successfully held in Xi'an
STM32学习记录0008——GPIO那些事1