为什么要统一管理微服务配置?
随着微服务不断的增多,每个微服务都有自己对应的配置文件。在研发过程中有测试环境、UAT环境、生产环境,因此每个微服务又对应至少三个不同环境的配置文件。这么多的配置文件,如果需要修改某个公共服务的配置信息,如:缓存、数据库等,难免会产生混乱,这个时候就需要引入Spring Cloud另外一个组件:Spring Cloud Config。
有哪几种?
1.SpringCloud config
Spring Cloud Config是一个解决分布式系统的配置管理方案。它包含了Client和Server两个部分,Server提供配置文件的存储、以接口的形式将配置文件的内容提供出去,Client通过接口获取数据、并依据此数据初始化自己的应用。
其实就是Server端将所有的配置文件服务化,需要配置文件的服务实例去Config Server获取对应的数据。将所有的配置文件统一整理,避免了配置文件碎片化。
如果服务运行期间改变配置文件,服务是不会得到最新的配置信息,需要解决这个问题就需要引入Refresh。可以在服务的运行期间重新加载配置文件。
当所有的配置文件都存储在配置中心的时候,配置中心就成为了一个非常重要的组件。如果配置中心出现问题将会导致灾难性的后果,因此在生产中建议对配置中心做集群,来支持配置中心高可用性。
2.nacos(阿里巴巴)
Nacos 支持基于 DNS 和基于 RPC 的服务发现(可以作为springcloud的注册中心)、动态配置服务(可以做配置中心)、动态 DNS 服务。
官网:
Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您实现动态服务发现、服务配置管理、服务及流量管理。
Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构(例如微服务范式、云原生范式)的服务基础设施。
3.Apollo(阿波罗)
Apollo(阿波罗)是携程框架部门研发的配置管理平台,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端。
apollo项目基于springboot与springcloud,可以独立部署
Apollo GitHub地址:
https://github.com/ctripcorp/apollo
今天重点
SpringCloud-config
接之前的Demo说:创建config-center模块,引入Gradle
服务端Gradle
compile 'org.springframework.cloud:spring-cloud-config-server'
客户端Gradle
compile 'org.springframework.cloud:spring-cloud-starter-config'
启动类引入ConfigServer代表为配置中心服务端
package org.gd; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.config.server.EnableConfigServer;/** * @DATA 2019-03-11 09:10 * @Author 张国伟 WeChat:17630376104 * @Description TODO */@EnableConfigServer @SpringBootApplicationpublic class ConfigConter { public static void main(String[] args) { SpringApplication.run(ConfigConter.class, args); } }
创建三个bootstrap
我们把配置文件放在Gitlab上,在Gitlab上创建yml
相关推荐
0评论