Spring Cloud Config配置中心(内网实用版native)
Native本地配置文件简介在接触微服务的时候就了解到config可以配置集成svn、git、DB、缓存数据库等,同时也支持修改配置无需重新启动等强大功能。然则,我们的现实是我们是内网,给客户部署的无需svn 、git等,同时热加载配置文件也可以暂时不采用(需要引入其他的组件,对于部署 也就增加的运维时间成本) ...
Native本地配置文件简介
在接触微服务的时候就了解到config可以配置集成svn、git、DB、缓存数据库等,同时也支持修改配置无需重新启动等强大功能。
然则,我们的现实是我们是内网,给客户部署的无需svn 、git等,同时热加载配置文件也可以暂时不采用(需要引入其他的组件,对于部署 也就增加的运维时间成本)
怎么办?
觉得应该还有其他的解决方案,搜了下相关资料了解到了一个native本地配置,config也是支持的。
采用它是可行的,开工。
主要解决的问题:
1.配置文件 统一集中配置
2.每个模块的数据库配置、缓存配置 独立出来
3.通用配置独立出来
遇到的问题
客户端无法加载多个配置文件?(放了一段时间后,浏览其他博客的时候 ,解决了)
总结:遇到的暂时解决不了的问题暂且放下,做个标记,之后的工作当中会很轻易的解决掉(把问题搁置),config功能很强大,我们只采用的部分功能,需要能帮助到您。
Config简介
在分布式系统中,每一个功能模块都能拆分成一个独立的服务,一次请求的完成,可能会调用很多个服务协调来完成,为了方便服务配置文件统一管理,更易于部署、维护,所以就需要分布式配置中心组件了,在spring cloud中,有分布式配置中心组件spring cloud config,它支持配置文件放在在配置服务的内存中,也支持放在远程Git仓库里。引入spring cloud config后,我们的外部配置文件就可以集中放置在一个git仓库里,再新建一个config server,用来管理所有的配置文件,维护的时候需要更改配置时,只需要在本地更改后,推送到远程仓库,所有的服务实例都可以通过config server来获取配置文件,这时每个服务实例就相当于配置服务的客户端config client,为了保证系统的稳定,配置服务端config server可以进行集群部署,即使某一个实例,因为某种原因不能提供服务,也还有其他的实例保证服务的继续进行
配置流程如下
1.服务端核心配置
引入相关jar后,配置文件配置:
spring:
cloud:
config:
server:
native:
search-locations: classpath:properties/,classpath:properties/provider-model/,
#username:
#password:
#search-paths: test-CONFIG
application:
name: config-server
profiles:
active: native
#eureka配置
eureka:
client:
serviceUrl:
defaultZone: http://127.0.0.1:7001/eureka/
instance:
prefer-ip-address: true
instance-id: ${spring.cloud.client.ipAddress}:${server.port}
server:
port: 7006
目录截图:
需要注意的点:
1.search-locations的用法,指定搜索的目录,更加详细的配置可研究下 2.properties目录是新建立的,配置文件都放在根目录下加载顺序会受到影响
config是注册到eureka当中的,客户端也需要从配置中心读取相关服务
客户端配置如下:采用的是服务的形式(核心配置如下)
spring:
application:
name: provider-order
cloud:
config:
discovery:
service-id: config-server
enabled: true
profile: dev
name: common,db-mysql,redis,provider-order
label: master
eureka:
client: #客户端注册进eureka服务列表内
service-url:
defaultZone: http://localhost:7001/eureka/
#defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/
instance:
instance-id: ${spring.cloud.client.ipAddress}:${server.port}
prefer-ip-address: true #访问路径可以显示IP地址
分析:
config: discovery: service-id: 指定从注册中心读取的服务ID(重点)
profile:指定要读取的配置 如dev、test等
最核心的是name
name: common,db-mysql,redis,provider-order
通过此方式可以引入多个配置文件。
结束语:微服务的应用越来越广泛,愿尽绵薄之力帮助大家快速了解微服务架构,感兴趣的的可以关注今日头条 @架构师速成记
更多推荐
所有评论(0)