当前位置: 首页 > news >正文

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

Nacos集群和mysql持久化配置
  • 1、Nacos集群部署架构
  • 2、Nacos持久化配置解释
  • 3、Linux版Nacos+MySQL生产环境配置
    • 3.1 集群规划
    • 3.2 nacos的linux版本安装
    • 3.3 linux服务器上的mysql数据库配置
    • 3.4 复制三份nacos文件
    • 3.5 修改application.properties
    • 3.6 修改cluster.conf
    • 3.7 修改三台节点的端口号
    • 3.8 启动三台nacos节点
    • 3.9 使用nginx做负载均衡
    • 3.10 集群测试
    • 3.11 微服务注册测试

这篇很重要,因为生产环境中为了高可用都是使用的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中都需要做如下修改:

代码语言:javascript

复制

 
  1. spring.datasource.platform=mysql

  2. db.num=1

  3. db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?useUnicode=true&characterEncoding=utf-8&useSSL=false

  4. db.user=root

  5. db.password=123456

3.6 修改cluster.conf

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

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

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

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

  增加如下配置:

代码语言:javascript

复制

 
  1. 192.168.159.33:3333

  2. 192.168.159.33:4444

  3. 192.168.159.33:5555

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

  执行如下命令:

代码语言:javascript

复制

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

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

3.7 修改三台节点的端口号

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

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

  nacos01:

代码语言:javascript

复制

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

  nacos02:

代码语言:javascript

复制

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

  nacos03:

代码语言:javascript

复制

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

3.8 启动三台nacos节点

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

代码语言:javascript

复制

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的配置文件

代码语言:javascript

复制

vim nginx.conf

  添加如下配置:

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

  启动nginx

代码语言:javascript

复制

 
  1. cd sbin

  2. ./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也是用集群搭建,实现真正的高可用集群。

参考:yNacos集群搭建和mysql持久化配置_nacos配置mysql-CSDN博客

相关文章:

  • 第三篇:[特殊字符] 深入理解MyBatis[特殊字符] 掌握MyBatis动态SQL——应对复杂查询的有力武器
  • 【vue】轮播图案例
  • 关于python字典的所有操作
  • 性能优化-Spring参数配置、数据库连接参数配置、JVM调优
  • 行锁(Row Locking)和MVCC(多版本并发控制)
  • 空地机器人在复杂动态环境下,如何高效自主导航?
  • ABAP:ME22N控制是否可修改-物料
  • 新晋前端框架技术:小程序容器与SuperApp构建
  • 多模态大语言模型arxiv论文略读(十九)
  • 用 Python 从零构建异步回显服务器
  • OceanBase4.0社区版 单机快速部署
  • clickhosue中json字符串转为表
  • JavaScript UI 组件DHTMLX:如何进行集成 DHTMLX 预订和调度程序的前端设置
  • 六、文件操作
  • MYSQL MVCC详解
  • Python 二分查找(bisect):排序数据的高效检索
  • 四层 PCB 在工业控制设备中的叠层设计要点
  • React 把一系列 state 更新加入队列
  • 如何看电脑的具体配置?
  • 网络7 配置网卡 路由表
  • 全国首家由司法行政部门赋码登记的商事调解组织落户上海
  • 美伊就核问题在罗马开展第二轮间接谈判
  • 上海奉贤这所九年一贯制学校将迎首批新生,有何特色?
  • 徐州沛县一村委会因无资质处理固废,被环保部门罚款19万元
  • 【社论】家政服务提质扩容,为何被一提再提
  • 华夏银行去年净赚超276亿增近5%,个人贷款不良率升至1.8%