• 配置中心(Config、Bus)


    1.技术背景

    如今微服务架构盛行,在分布式系统中,项目日益庞大,子项目日益增多,每个项目都散落着各种配置文件,且随着服务的增加而不断增多。此时,往往某一个基础服务信息变更都会导致一系列服务的更新和重启,运维也是苦不堪言,而且还很容易出错。配置中心便由此应运而生了日前市面上开源的配置中心很多,像 Spning家族的 Spring Cloud Config、 Apache的 ApacheCommons Configuration,淘宝的 diamond、百度的 disconf、360的 QConf等,都是为了解决这类问题。当下 Spring体系大行其道,我们也优先选择了 Spring Cloud Config。

    2.Spring Cloud Config

    Spring Cloud Config是一套为分布式系统中的基础设施和微服务应用提供集中化配置的管理方案,分为服务端与客户端两个部分。服务端也称为分布式配置中心,是一个独立的微服务应用,用来连接配置仓库并为客户端把供获取配置信息。客户端是微服务架构中的各个微服务应用或基础设施,它们通过指定的配置中心来管理服务相关的配置内容,并在启动的时候从配置中心获取和加载配置信息.

    Spring Cloud Config对服务端和客户端中的环境变量和属性配置实现了抽象映射, 所以除了适用于Spring应用, 也是可以在任何其他语言应用中使用的。 Spring Cloud Config实现的配置中心默认采用Git来存储配置信息.所以使用Spring Cloud Config构建的配置服务器天然就支持对微服务应用配置信息的版本管理, 并且可以通过Git客户端工具十常方便地管理和访问配置内容, 当然它也提供了对其他存储方式的支持, 比如SVN仓库、本地化文件系统等。

    3.Spring Cloud Bus

    Spring Cloud Bus被大家称为消息总线, 通过轻量级的消息代理米连接各个分布的节点,可以利用像消息队列的广播机制在分布式系统中进行消息传播,通过消息总线可以实现很多业务功能,其中对于配置中心客户端别新就是一个非常典型的使用场景。下图可以很好地解释消息总线的作用流程。

    image

    Spring Cloud Bus进行配置更新的步骤如下:
    (1) 提交代码触发post请求给/actuator/bus-refresh。
    (2) Server端接收到请求并发送给Spring Cloud Bus.
    (3) Spring Cloud bus接到消息并通知给其他客户端。
    (4) 其他客户端接收到通知, 请求Server端获取最新配置.
    (5)全部客户端均获取到最新的配置。

  • 相关阅读:
    大白带你侃JAVA——封装的概述及好处
    什么是面向对象?(通俗易懂)
    方法和数组就是这么简单!
    Java开发环境不再需要配置classpath!
    Logback中使用TurboFilter实现日志级别等内容的动态修改
    Logback中如何自定义灵活的日志过滤规则
    Swagger中配置了@ApiModelProperty的allowableValues属性但不显示的问题
    Spring Boot中如何扩展XML请求和响应的支持
    Spring Cloud Finchley版中Consul多实例注册的问题处理
    为Spring Cloud Config插上管理的翅膀
  • 原文地址:https://www.cnblogs.com/xc-xinxue/p/12543652.html
Copyright © 2020-2023  润新知