程序员

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

2020-12-11  本文已影响0人  deniro

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 实例.

上一篇下一篇

猜你喜欢

热点阅读