SpringCloud1.5.x ConfigServer配置

由于近期项目改造,需要将原先的微服务配置中心使用起来,所以先对springcloud1.5x版本的配置方式写一下,后续将微服务升级为springcloud2.x版本,再补充配置内容

1、ConfigServer服务端配置

① application.yml

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8100/eureka/
security:
  basic:
    enabled: false
server:
  port: 8101
spring:
  application:
    name: config-server
  profiles:
    active: native
  cloud:
    config:
      server:
        native:
          search-locations: D:/workspace/config-files #本地存储配置文件
  rabbitmq:
    host: 127.0.0.1
    port: 5672
    username: admin
    password: admin

management:
  security:
    enabled: false

② pom配置

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-test</artifactId>
	<scope>test</scope>
</dependency>
<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-config-server</artifactId>
</dependency>
<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>

<!-- 使用bus总线的方式通知所有的微服务配置文件需要刷新 -->
<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>

2、Client端配置

2.1 配置文件

在client端,需要添加bootstrap.yml配置文件,因为bootstramp配置文件的加载时间早于application配置文件的加载时间,所以需要用bootstrap配置文件来引导client端的配置

bootstrap.yml
-----------------------------------
spring:
  cloud:
    config:
      uri: http://localhost:8101 # configserver的访问路径
      profile: dev
  rabbitmq:
    host: 127.0.0.1
    port: 5672
    username: admin
    password: admin

management:
  security:
    enabled: false

security:                       #是否开启基本的鉴权,默认为true
  basic:
    enabled: false

2.2 配置类修改

由于测试client端使用变更数据库查看动态配置效果,所以需要配置DataSourceConfig,@RefreshScope用于热更新配置,需要用热更新配置的配置文件,需要使用@RefreshScope来修饰,意味着其他的配置如果需要热配置更新,都需要写一个配置类,并使用@RefreshScope来修饰

@Configuration
public class DataSourceConfig {
	@Bean
	@RefreshScope
	@Primary
	@ConfigurationProperties("spring.datasource.druid")
	public DataSource dataSource(){
        return DruidDataSourceBuilder.create().build();
    }
}

2.3 pom依赖

 <!--Spring Boot Actuator,感应服务端变化-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- 使用bus总线的方式通知所有的微服务配置文件需要刷新 -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>

3、配置文件存放及配置文件命名

Config支持我们使用的请求的参数规则为:

/ { 应用名 } / { 环境名 } [ / { 分支名 } ]
/ { 应用名 } - { 环境名 }.yml
/ { 应用名 } - { 环境名 }.properties
/ { 分支名 } / { 应用名 } - { 环境名 }.yml
/ { 分支名 } / { 应用名 } - { 环境名 }.properties
注意:

1、第一个规则的分支名是可以省略的,默认是master分支
2、无论你的配置文件是properties,还是yml,只要是应用名+环境名能匹配到这个配置文件,那么就能取到
3、如果是想直接定位到没有写环境名的默认配置,那么就可以使用default去匹配没有环境名的配置文件
4、使用第一个规则会匹配到默认配置
5、如果直接使用应用名来匹配,会出现404错误,此时可以加上分支名匹配到默认配置文件
6、如果配置文件的命名很由多个-分隔,此时直接使用这个文件名去匹配的话,会出现直接将内容以源配置文件内容直接返回,内容前可能会有默认配置文件的内容(已测试)

4、本地配置文件-样例

api-manager-dev.yml
api-manager: client配置的工程名
dev: bootstrap.yml中配置的环境(dev/prod/test)名字
以下是api-manager-dev.yml的内容:
---------------------------------------------------
eureka:
  instance:
    prefer-ip-address: true
  client:
    serviceUrl:
      defaultZone: http://localhost:8100/eureka/

spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driverClassName: com.mysql.jdbc.Driver
    druid:
      url: jdbc:mysql://127.0.0.11:3306/test?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false
      # url: jdbc:mysql://127.0.0.1:3306/test1?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false
      username: root
      password: 123456
      initial-size: 2
      max-active: 100
      min-idle: 2
      max-wait: 60000
      pool-prepared-statements: true
      max-pool-prepared-statement-per-connection-size: 20
      time-between-eviction-runs-millis: 60000
      min-evictable-idle-time-millis: 300000
      validation-query: SELECT 1
      test-while-idle: true
      test-on-borrow: false
      test-on-return: false
  jackson:
    date-format: yyyy-MM-dd
    time-zone: GMT+8

5、测试

启动:configserver、client
1、修改api-manager-dev.yml配置文件
2、使用POST请求,发送请求
http://localhost:8101/bus/refresh
来刷新配置文件,并通过bus总线通知到client端
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值