美文网首页程序员
说说微服务配置中心特性、原则、模型设计以及技术选型

说说微服务配置中心特性、原则、模型设计以及技术选型

作者: deniro | 来源:发表于2020-12-11 20:11 被阅读0次

    1 特性与原则

    微服务在配置方面与传统开发模式存在很大的区别,具体特性如下1

    (1)应用配置与实际代码完全分离;

    (2)应用或者一个不可变的 Docker镜像,它们在各自环境中的配置不会发生变化。

    (3)服务器启动时,可通过环境变量加载应用配置信息,也可通过集中式存储库来加载应用配置信息。

    依据这些特性,我们可以提炼出微服务在配置方面的四项原则1

    (1)分离 ——服务配置信息与服务完全分离。服务器启动时,再通过环境变量或集中式存储库来加载应用配置信息。

    (2)抽象 —— 将访问配置数据的功能抽象到一个服务接口中。应用使用基于 REST 的 JSON 服务来获取配置数据。

    (3)集中 —— 因为应用可能存在数百个服务,所以应该将应用的配置信息尽可能集中存放。

    (4)稳定 —— 因为应用程配置信息与服务完全分开并且集中存放,所以一定要保证高可用和冗余。

    2 模型设计

    通过微服务配置特性与原则,我们可以设计出符合这一要求的微服务配置模型1

    1. 微服务实例启动时,会从配置中心拉取相关配置信息;

    2. 配置中心会从配置库中读取实际配置信息;

    3. 配置库可以是配置文件、关系数据库或者键值对数据库;

    4. 开发人员通过版本控制系统来变更配置信息,这样便于进行版本管理。

    实际构建时,按照项目来对应配置中心:

    一个项目对应一个配置中心。如果有多个项目那么对应多个配置中心。也就是把配置中心下沉到项目中。这样做的好处是:

    1. 因为配置中心在项目结构中,可以很方便地进行配置;

    2. 可以针对具体项目的特性来构建配置中心高可用架构。

    不足是如果有多个项目,那么就会存在多个配置中心,增加管理复杂度。

    3 技术选型

    使用Spring Cloud Config 框架来搭建配置中心,有以下优点1

    (1) 易于搭建和使用;

    (2) Spring Cloud Config与 Spring Boot 紧密集成,通过一些简单易用的注解即可读取配置数据;

    (3) Spring Cloud Config与 Eureka 服务发现中心集成良好;

    (4) Spring Cloud Config 与 Git 代码版本控制系统集成良好;

    (5) Spring Cloud Config 与 SVN代码版本控制系统集成良好2


    【1】 约翰 · 卡内尔 . Spring 微服务实战(异步图书) (Kindle 位置 1433-1518) . 人民邮电出版社 . Kindle 版本 .
    【2】 spring cloud config 配置svn 实例.

    相关文章

      网友评论

        本文标题:说说微服务配置中心特性、原则、模型设计以及技术选型

        本文链接:https://www.haomeiwen.com/subject/hlilgktx.html