- 目录
- 前言
- 一、配置中心介绍
- 1、配置中心是什么
- 2、配置中心能干什么
- 3、git整合
- 二、使用
- 1、服务端
- 1.在git上创建一个新仓库
- 2、模块创建
- yml文件
- maven依赖
- 2、客户端
- bootstrap.yml
- yml文件
- maven依赖
前言
微服务意味着要将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大量的服务。由于每个服务都需要必要的配置信息才能进行,所以一套集中式的、动态的配置管理设施是必不可少的。
官网:https://cloud.spring.io/spring-cloud-static/spring-cloud-config/2.2.1.RELEASE/reference/html/
一、配置中心介绍 1、配置中心是什么
springCloud Config 为微服务架构中的微服务提供集中化的外部配置设施支持,配置服务为各个不同微服务应用的所有环境提供了一个中心的外部配置。
2、配置中心能干什么- 集中管理配置文件
- 不同环境不同配置,动态化的配置更新,分环境部署
- 运行期间动态调整配置,不再需要在每个服务部署的机器上编写配置文件,服务会向配置中心统一拉取配置自己的信息
- 当配置发送变化时,服务不需要重启即可感知到配置的变化并应用新的配置
- 将配置信息以REST接口的形式暴露
由于SpringCloud Config默认使用Git来存储配置文件(也有其它方式,比如支持SVN和本地文件),但最推荐的还是Git,而且使用的是http/https访问的形式。
官网:https://cloud.spring.io/spring-cloud-static/spring-cloud-config/2.2.1.RELEASE/reference/html/
二、使用 1、服务端 1.在git上创建一个新仓库获得git地址:
cloud-config-center-3344
yml文件server:
port: 3344
spring:
application:
name: cloud-config-center #注册进Eureka服务器的微服务名
cloud:
config:
server:
git:
# 以下两步均需要在idea的插件中配置gitee
# 方式1 通过ssh登录
# uri: git@github.com:GuoWeiChi/turorial-spring-cloud-config.git #GitHub上面的git仓库名字
uri: git@github.com:LiuCan99/springcloud-config.gitt #Gitee上面的git仓库名字
# ###搜索目录
search-paths:
- springcloud-config
# 方式2 通过账号登录
# uri: https://gitee.com/codinginn/turorial-spring-cloud-config.git #GitHub上面的git仓库名字
# search-paths:
# - turorial-spring-cloud-config
# username: yourusername
# password: yourpassword
####读取分支
label: master
#服务注册到eureka地址
eureka:
client:
service-url:
defaultZone: http://localhost:7001/eureka
maven依赖
2、客户端 bootstrap.ymlcloud2022 com.lc.springcloud 1.0-SNAPSHOT 4.0.0 cloud-config-center-3344 org.springframework.cloud spring-cloud-config-server com.jcraft jsch com.github.mwiede jsch 0.2.0 org.springframework.cloud spring-cloud-starter-netflix-eureka-client org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-actuator org.springframework.boot spring-boot-devtools runtime true org.projectlombok lombok true org.springframework.boot spring-boot-starter-test test
server:
port: 3355
spring:
application:
name: config-clident
cloud:
config:
label: master
name: config #配置文件名
profile: dev #读取后缀名 以上三个综合:master分支config-dev.yml
uri:
- http://localhost:3344
datasource:
type: com.alibaba.druid.pool.DruidDataSource #当前数据源操作类型
driver-class-name: org.gjt.mm.mysql.Driver #mysql驱动包
url: jdbc:mysql://localhost:3306/springcloud?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDateTimeCode=false&serverTimezone=GMT%2B8&useSSL=false
username: root
password: root1234
#rabbitmq相关配置 15672是Web管理界面的端口;5672是MQ访问的端口
rabbitmq:
host: localhost
port: 5672
username: guest
password: guest
eureka:
client:
service-url:
defaultZone: http://localhost:7001/eureka
mybatis:
mapper-locations:
- classpath:mapper/*.xml
type-aliases-package: com.lc.cloud.entities #所有model所在包
#暴露全部监控信息
management:
endpoints:
web:
exposure:
include: "*"
endpoint:
refresh:
enabled: true
yml文件
server:
port: 3355
spring:
application:
name: config-clident
cloud:
config:
label: master
name: config #配置文件名
profile: dev #读取后缀名 以上三个综合:master分支config-dev.yml
uri:
- http://localhost:3344
datasource:
type: com.alibaba.druid.pool.DruidDataSource #当前数据源操作类型
driver-class-name: org.gjt.mm.mysql.Driver #mysql驱动包
url: jdbc:mysql://localhost:3306/springcloud?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDateTimeCode=false&serverTimezone=GMT%2B8&useSSL=false
username: root
password: root1234
eureka:
client:
service-url:
defaultZone: http://localhost:7001/eureka
mybatis:
mapper-locations:
- classpath:mapper/*.xml
type-aliases-package: com.lc.cloud.entities #所有model所在包
#暴露全部监控信息
management:
endpoints:
web:
exposure:
include: "*"
endpoint:
refresh:
enabled: true
maven依赖
cloud2022 com.lc.springcloud 1.0-SNAPSHOT 4.0.0 cloud-config-center-3355 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-actuator org.springframework.boot spring-boot-starter-test test org.junit.vintage junit-vintage-engine org.springframework.cloud spring-cloud-starter-config org.springframework.cloud spring-cloud-starter-bus-amqp org.springframework.cloud spring-cloud-starter-netflix-eureka-client org.springframework.cloud spring-cloud-starter-netflix-hystrix com.lc.springcloud cloud-api-commons ${project.version} mysql mysql-connector-java com.alibaba druid org.mybatis.spring.boot mybatis-spring-boot-starter junit junit log4j log4j org.springframework.boot spring-boot-starter-thymeleaf org.webjars bootstrap org.projectlombok lombok org.springframework.boot spring-boot-starter-actuator



