spring cloud config 技术调研

spring cloud config 技术调研

  1. 简介
spring cloud是为微服务架构提供了一整套的技术方案,包括 服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等。
其中spring cloud config 是spring cloud 的子项目,为项目提供一个高可用的分布式配置中心。
  1. 项目功能
Config Server的架构图如下: 

Spring Cloud Config 项目:
1.提供服务端和客户端支持。
2.集中式管理分布式环境下的应用配置。
3.基于Spring 环境,无缝与Spring应用集成。
4.可用于 任何 语言开发的程序。
5.默认实现基于git仓库,可以进行版本管理。
6.可替换 自定义实现。
Spring Cloud Config Server作为配置中心服务端:
1.拉取配置时更新git仓库副本,保证是最新结果。
2.支持数据结构丰富,yml,json,properties 等。
3.配合eureke可实现服务发现,配合cloud bus可实现配置推送更新。
4.配置存储基于git仓库,可进行版本管理。
5.简单可靠,有丰富的配套方案。
Spring Cloud Config Client 默认客户端实现:
  1. SpringBoot 项目不需要改动任何代码,加入一个启动配置文件指明使用 ConfigServer 上哪个配置文件即可。
  1. 技术分析
目前市面上已经有好几款配置中心项目,比较流行的有:百度的disconf、携程的apollo、淘宝的diamond等。这里对比下这几个项目的功能:

配置中心
管理后台
github star
存储
服务发现
推送更新
回滚
spring cloud config
没有(git管理界面)
675
git或svn
eureke
支持
支持
disconf(百度)
3226
mysql
zookeeper
支持
不支持
apollo(携程)
2914
mysql
eureke
支持
支持


配置中心
客户端
文档
开发框架
配置新增
依赖组件
spring cloud config
部署文档
使用文档
spring boot
  1. 接口调用初始化

  2. git管理页面新增配置文件
  1. eureke

  2. cloud bus

  3. git
disconf(百度)
部署文档
使用文档
spring mvc
后台新增
  1. zookeeper

  2. mysql
apollo(携程)
部署文档
使用文档
开发文档
spring boot
后台新增
  1. eureke

  2. mysql

eureke:spring cloud 的一个子项目,为服务提供服务注册中心。
spring cloud bus:spring cloud 的一个子项目,消息总线,将分布式的节点用轻量的消息代理连接起来。它可以用于广播配置文件的更改或者服务之间的通讯,也可以用于监控。

3.1优点

  1. 满足配置中心要求(远程统一配置、高可用)。
  2. 具有回滚配置功能(git的特性)。
  3. spring cloud生态,与spring项目完美兼容。
  4. 继承spring boot的优势(简单、易部署、配置少)
  5. 属于spring cloud 生态,社区强大、版本迭代快
3.2缺点
  1. 没有后台管理,需要git管理后台支持来进行配置管理。
  2. 稳定性取决于git服务的稳定性。
  3. 新项目,使用人数一般(中小型应用)
  4. 因为没有管理后台,无法查看配置被哪些服务使用
  5. 部署集群必须是能访问git服务(同一内网或git服务提供外网地址)
  6. 不支持灰度发布
  1. 项目部署
4.1下载源码
当前下载项目使用tag:v1.4.0RELEASE
下载完成后导入到idea中:

4.2启动服务

进入spring-cloud-config-server 执行mvn spring-boot:run
默认端口是8888

就启动完毕了,

说明服务已经正常启动了。
ps:
如果出现错误:
Cannot determine embedded database driver class for database type NONE
需要在启动入口加上:
@EnableAutoConfiguration ( exclude ={DataSourceAutoConfiguration. class })

再重新启动就可以了。

4.3测试配置中心

项目中提供了一个测试项目spring-cloud-config-sample
启动这个项目mvn spring-boot:run
默认端口是8080
测试是否能正常 获取 远程配置中心的配置:
返回:Spring Cloud Samples 数据正常。
查看info.description 这个配置:

4.5接口语法

先看一共有多少种访问方式:
/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties
application:客户端的spring.config.name
profile:表示获取指定环境下配置,例如开发环境、测试环境、生产环境 默认值default,实际开发中可以是 dev、test、demo、production等
lable: git标签,默认值master
  1. 总结
使用spring cloud config 需要对spring boot 有一定的了解,熟悉spring boot的开发模式和配置方式。项目是基于spring boot开发的,整个项目配置简单、部署方便。
充分利用了git的特性,如版本、分支和回滚等。使得配置中心可以支持多环境配置、配置后回滚等功能。
如果微服务是使用spring cloud开发,可以使用 spring cloud config 作为远程配置中心来管理整个集群服务的配置,达到统一配置、统一管理。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值