SpringCloud第十七章AlibabaNacos集群和持久化配置(重要)

5、Nacos集群和持久化配置(重要)

5.1、官网说明

  • https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html

  • 官网架构图(写的o(╥﹏╥)o)

    在这里插入图片描述

  • 上图官网翻译,真实情况

    在这里插入图片描述

  • 说明 https://nacos.io/zh-cn/docs/deployment.html

    默认Nacos使用嵌入式数据库实现数据的存储。所以,如果启动多个默认配置下的Nacos节点,数据存储是存在一致性问题的。
    为了解决这个问题,Nacos采用了集中式存储的方式来支持集群化部署,目前只支持MySQL的存储。

    在这里插入图片描述

    在这里插入图片描述

5.2、Nacos持久化配置解释

  • Nacos默认自带的是嵌入式数据库derby https://github.com/alibaba/nacos/blob/develop/config/pom.xml

  • derby到mysql切换配置步骤

    • nacos\conf目录下找到sql脚本

      SQLyog执行nacos-mysql.sql

    • nacos\conf目录下找到application.properties

      末尾添加

      spring.datasource.platform=mysql
      
      db.num=1
      db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&serverTimezone=Asia/Shanghai
      db.user=root
      db.password=123
      
  • 启动Nacos,可以看到是个全新的空记录界面,以前是记录进derby

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

  • 预计需要,1个Nginx+3个nacos注册中心+1个mysql

  • Nacos下载Linux版

    在这里插入图片描述

    • https://github.com/alibaba/nacos/releases

    • 解压后安装

      tar -zxvf nacos-server-2.0.1.tar.gz

  • 集群配置步骤(重点)

    • Linux服务器上mysql数据库配置

      • SQL脚本在哪里

        conf目录下nacos-mysql.sql

      • 自己Linux机器上的Mysql数据库粘贴

        在这里插入图片描述

    • application.properties 配置

      • 位置

        在这里插入图片描述

    在这里插入图片描述

    • 内容

      application.properties 文件打开后的最后面,配置如下内容:

      spring.datasource.platform=mysql
      
      db.num=1
      db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&serverTimezone=Asia/Shanghai
      db.user=root
      db.password=123
      
    • Linux服务器上nacos的集群配置cluster.conf

      • 梳理出3台nacos集器的不同服务端口号

      • 复制出cluster.conf

        在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    • 内容

      在这里插入图片描述

    这个IP不能写127.0.0.1,必须是Linux命令hostname -i能够识别的IP

    在这里插入图片描述

    • 编辑Nacos的启动脚本startup.sh,使它能够接受不同的启动端口

      • /mynacos/nacos/bin 目录下有startup.sh

      • 思考

        /mynacos/nacos/bin 目录下有startup.sh

        平时单机版的启动,都是./startup.sh即可。

        但是

        集群启动,我们希望可以类似其它软件的shell命令,传递不同的端口号启动不同的nacos实例。
        命令:./startup.sh -p 3333 表示启动端口号为3333的nacos服务器实例,和上一步的cluster.conf配置的一致。

      • 修改内容

        修改前修改后
        在这里插入图片描述

| 在这里插入图片描述
|

| | |
| 在这里插入图片描述
| 在这里插入图片描述
|

  • 执行方式

    在这里插入图片描述

  • Nginx的配置,由它作为负载均衡器

    • 修改nginx的配置文件

      在这里插入图片描述

  • nginx.conf

    upstream cluster{
    server 127.0.0.1:3333;
    server 127.0.0.1:4444;
    server 127.0.0.1:5555;
    }
    server {
    listen 1111;
    server_name localhost;
    #charset koi8-r;
    #access_log logs/host.access.log main;
    location / {
    #root html;
    #index index.html index.htm;
    proxy_pass http://cluster;
    }
    …省略

    在这里插入图片描述

  • 按照指定启动

    在这里插入图片描述

  • 截止到此处,1个Nginx+3个nacos注册中心+1个mysql

    • 测试通过nginx访问nacos

      http://192.168.111.144:1111/nacos/#/login

    • 新建一个配置测试

      在这里插入图片描述

  • linux服务器的mysql插入一条记录

    在这里插入图片描述

  • 测试

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

    • yml

      server:
        port: 9002
      
      spring:
        application:
          name: nacos-payment-provider
        cloud:
          nacos:
            discovery:
              #配置Nacos地址
              #server-addr: localhost:8848
              # 换成nginx的1111端口,做集群
              server-addr: 192.168.111.144:1111
      
      
      management:
        endpoints:
          web:
            exposure:
              include: '*'
      
      
      
    • 结果

      在这里插入图片描述

  • 高可用小总结

    在这里插入图片描述

(完)

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值