当前位置:   article > 正文

ConfigServer配置中心_config service 打开

config service 打开

在实际应用中,一个系统的每个微服务都会有相同的配置,如数据库配置信息等等。
为了将每个微服务的公共配置可以抽取出来。SpringCloud提供了Config配置中心的配置,作为配置中心(ConfigServer),提供给微服务(ConfigClient)读取并且加载配置。
使用git仓库存放配置文件,SpringCloudConfig读取到之后会自动加载配置。
配置文件可以是.yml、.properties后缀,SpringCloudConfig读取到之后会自动加载。

###搭建ConfigServer
######一、将写好的配置文件push到git仓库中
配置文件命名规则:
应用名-环境名.yml或者应用名-环境名.properties
push文件名为test-dev.yml的文件到git,文件内容:

serverAddress:
  activeMQ: http://192.168.10.116:61616
  redis: http://192.168.10.177:7777
  nginx: http://192.168.10.155:80
  • 1
  • 2
  • 3
  • 4
二、创建SonfigServer服务

1、添加ConfigServer依赖,由于要注册到Eureka中被其他服务发现,因此要添加EurekaClient依赖

       <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-server</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

2、主程序中添加注解@EnableConfigServer

package com.huiche51.www;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;

@EnableConfigServer
@SpringBootApplication
public class ConfigApplication {
    public static void main(String[] args) {
        SpringApplication.run(ConfigApplication.class);
    }
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

3、application.yml配置

spring:
  application:
    name: config-server #应用名称
  cloud:
    config:
      server:
        git:
          uri: root@192.168.2.220:/home/git/server-config.git #git远程仓库的地址
          search-paths: test
          basedir: /media/gao/work/project/java/Study/server-config #git本地仓库地址
          #此仓库如果是私有仓库,则需要用户名与密码
          username: root
          password: huiche51.

eureka:
  client:
    serviceUrl:
      defaultZone: http://127.0.0.1:8866/eureka/

server:
  port: 8899
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

4、服务创建完成

客户端访问并加载ConfigServer配置文件

1、作为Config客户端,需要添加ConfigClient的依赖

      <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>
  • 1
  • 2
  • 3
  • 4

2、创建bootstrap.yml文件。
bootstrap.properties的优先级高于application.properties,服务启动时,会优先加载bootstrap.properties,所以,对于一些优先加载的配置信息,如数据库信息、配置中心信息等,应存放在bootstrap.properties文件中,可被正常加载。

spring:
  cloud:
    config:
      name: test #对应{application}部分
      profile: dev #对应{profile}部分
      label: master #对应{label}部分
      discovery:
        enabled: true #开启Config服务发现支持(从配置中心读取文件)
        service-id: config-server #目标Config服务端名称


eureka:
  client:
    serviceUrl:
      defaultZone: http://127.0.0.1:8866/eureka/ #指定Eureka服务的地址
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

属性解释:
name: 指定git仓库中某个配置文件的应用名。
**profile:**指定git仓库中某个配置文件的环境名。
**label:**指定目标配置文件在git仓库中的分支名。

运行测试

1、先启动Eureka服务。
2、启动配置中心服务。
3、启动Config客户端
此时config客户端通过eureka访问配置中心,配置中心从git中获取配置文件给config客户端并且加载配置。

ConfigClient动态更新配置文件

*每个ConfigClient(微服务)只有在启动时会从配置中心加载配置,这样如果微服务需要更换配置时就要重启服务。有没有办法可以不重启就可以重新加载最新配置呢?
有滴,ConfigRefresh依赖帮到你。
*

一、配置

引入Refresh依赖

       <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
  • 1
  • 2
  • 3
  • 4

.yml文件配置启用refresh

management:
  endpoints:
    web:
      exposure:
        include: refresh

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
二、触发更新

1、新的配置文件push到git后,给需要重新加载配置的Config客户端发送一个”/actuator/refresh“的post请求

Config客户端就会重新加载新的配置文件

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/84075?site
推荐阅读
相关标签
  

闽ICP备14008679号