zoukankan      html  css  js  c++  java
  • 分布式配置中心

    1、话题引入:

    如果配置文件全部放在resources目录下,管理起来非常复杂,所以采用分布式配置中心,放在git上

    2、产生背景:

    在微服务中如果使用传统的方式管理配置文件,配置文件管理器非常复杂;

    如果生产环境配置文件,可能需要发生改变的时候,重新打war,重新读取配置信息在jvm内存中;

    3、什么是分布式配置中心:

    在微服务中使用同一个服务器管理所有服务配置文件信息,能够实现后台可管理,当服务器正在运行时,如果配置文件需要发生改变,可以实现不需要重启服务器实时更改配置文件信息。

    4、分布式配置中心框架

    1)阿波罗,携程的,有图形界面可管理配置文件信息,配置文件信息存放在数据库里面

    2)SpringCoud Config 没有后台可管理分布式配置中心,配置文件信息存放在版本控制器里面(git/svn)

    3)Zookeeper 持久节点+事件通知

    5、搭建分布式配置中心所需要的组件:

    1)web管理系统,后台可以使用图形界面管理配置文件

    2)存放分布式配置文件的服务器(持久存储服务器),使用版本控制器

    3)ConfigServer缓存配置文件服务器(临时缓存存放)

    4)ConfigClient读取ConfigServer配置文件信息

    6、git上文件命名规则

    1)git环境上文件夹以项目进行区分

    member_config 会员服务配置文件

    order_config 订单服务配置文件

    2)公司项目中环境是如何区分

    dev 开发环境

    sit 测试环境

    pre 预发布环境

    prd 准生产环境

    3)客户端的命名要和git上的服务名称一样,因为系统会以该命名为前缀去git上面搜索

    配置文件命名规则:服务名称-环境.properties

     

    7、刷新配置文件

    1)默认情况下不能及时的获取实时变更的配置文件信息,springcloud分布式配置中心可以采用手动刷新或者自动刷新

    手动刷新---需要人工调用接口,读取最新配置文件(监控中心)--建议使用

    自动刷新---消息总线进行实时通知,springbus --不建议使用,更加消耗性能

    两者都不需要重启服务器

    2)要实现手动刷新,要用到actuator,在yml中配置,然后在Controller上面加上@RefreshScope注解;

    还要手动发一个post请求:http://localhost:9300/actuator/refresh

    =》一般来说,会将配置信息放在一个类上面,把@RefreshScope注解放在那个类上面就可以了;肯定不会在所有Controller上面加注解的;

     

    问题

    1)config-server搭建好后,sit文件访问有内容,而prd访问没内容

    --》可能是gitee的问题,删掉重新建一个就可以访问了;这里不能访问,后面的config-client也是不能访问的;

    注意这个config-client的yml文件为prd

    2)在config-client启动后,如果某个配置文件不存在(服务名/环境名错误),那么程序就会立马报错;

  • 相关阅读:
    Delphi字符串函数大全
    Jackson 工具类使用及配置指南
    Mybatis中javaType和jdbcType对应关系
    Mybatis SqlSessionTemplate 源码解析
    GridView 使用技巧【转】
    Spring JSR250注解
    表格文字不换行
    Sql 分页
    从GridView生成DataTable
    故障诊断:解惑IIS服务器无法添加映射之谜
  • 原文地址:https://www.cnblogs.com/syjp/p/10389901.html
Copyright © 2011-2022 走看看