zoukankan      html  css  js  c++  java
  • 【转】 SpringCloudAlibaba--04——nacos

    【转】 SpringCloudAlibaba--04——nacos

    参考地址:蚂蚁课堂

    * 分布式配置中心产生的背景

    我们的注册中心,说白了就是把我们服务的ip+端口+接口名称,就我们请求的服务接口,给放在了注册中心。我们的Nacos 是注册和 配置 中心

    我们服务的访问接口的ip+端口号可能会经常变的,那我们去访问的代码也要变,非常麻烦,所以要使用服务名来绑定 代替上ip+端口号

     定义配置规范:前面一定要加上团队名称,不可以瞎写。

    分布式配置中心的概念:使用专门的服务器统一存放管理我们整个项目的配置文件,能够完全动态的去实现对我们配置文件的修改或新增,是不需要重启服务器的。

    常见的配置中心有:携程的阿波罗SpringCloud的 Config(没有界面)、Nacos轻量级的配置中心等。

    * 分布式配置中心架构原理

    1、本地应用读取我们云端分布式配置中心文件(第一次请求时候会建立长连接)

    2、本地应用读取到配置文件后,本地JVM 和硬盘中都会缓存一份

    3、当我们配置文件发生变化时(MD5|版本号实现区分),将变化结果通知给我们本地应用,及时刷新我们的配置文件。

    这样就实现动态化修改我们的配置文件。

     Nacos 分布式配置中心和注册中心都是部署在同一个应用里,是一个单体架构。它的默认端口号时8848,所以它里面自己的服务肯定都是8848端口。

    * 配置文件发布Nacos配置中心

     配置服务名称:

     Nacos 上配置

     选中properties 文件,写的就是properties文件的格式,点击发布即可

    * 本地应用读取Nacos配置中心

    依赖:

         <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
                <version>0.2.2.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
                <version>0.2.2.RELEASE</version>
            </dependency>

     注意:如果本地也配置了Nacos,在启动时候可能会有异常,因为它可能不知道该去读取哪里的配置了。

    所以要把这个删了:

     切记要把连接Nacos 的配置文件,放在bootStrap.yml 文件里面,所以这时候我们新建一个bootStrap.yml 文件,把连接Nacos 的配置给剪切过来:

     因为bootStrap 命名的优先级最高,在整个应用程序中最先被加载。

    * Nacos动态更新本地配置文件

    这启动类添加这个注解,可以保持长连接,动态刷新

    直接在这里改,然后发布

     如果想要把properties文件换成yml格式的配置文件:

     然后本地默认连接的时properties文件,设置成yaml 就好了。。

     重启就OK了

    * Nacos实现多环境不同配置

    比如我们项目一般都是有开发环境dev 和正式环境prod

    测试:新建两个文件,一个dev,一个prd

      

    然后再bootStrap.yml 配置里添加:

     这样读的就是dev的配置文件

    * Nacos实现配置中心集群部署

     

     我们的多个Nacos配置中心都是持久化到的同一个MySql服务,这样子的一个集群

    * Nacos配置中心持久化到数据库

    我们从Nacos的conf 目录下的配置文件可以找到:

     然后去新建一个数据库表,去把conf 目录下的那个nacos-mysql.sql 的sql 语句拿来执行一下:

     它里面有这些表:

     然后我们可以更改Nacos 的配置文件,把application.properties.example 文件的拿下配置复制过来,放在application.properties 文件里,进行修改连接自己的数据库ip

      

    然后重启Nacos 就生效了,切记: 如果这样更改了,之前的Nacos 的所有配置文件都是清空了的!!

     * Nginx是实现Nacos集群部署

    实现原理:

     而我们操作的话很简单:

     模拟三个Nacos,把它的application.properties 文件里的端口给改了。

     去配置Nginx:

     这时候别高兴太早,项目里只加了8848,我们要用逗号,分开,加上所有ip+端口

     这样就可以三个节点都放在了分布式配置中心

  • 相关阅读:
    Cocos2dx-demo演示项目:Part2
    利用Python抓取亚马逊评论列表数据
    Cocos2dx-demo演示项目:Part1
    正则表达式匹配原理
    js正则函数中test和match的区别
    【别人家的孩子系列之】浅析正则表达式—(原理篇)
    JS 获取浏览器窗口大小
    javascript的insertBefore、insertAfter和appendChild简单介绍
    javascript 限制字符串字数换行 带BUG
    一行一行分析JQ源码学习笔记-06
  • 原文地址:https://www.cnblogs.com/Javastudy-note/p/13818356.html
Copyright © 2011-2022 走看看