码迷,mamicode.com
首页 > 编程语言 > 详细

SpringCloudConfig相关配置简介、使用、整合Eureka

时间:2019-11-28 01:03:00      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:题解   版本管理   实现   art   svn服务器   pen   coding   无需重启   配置   

目的:

  1、SpringCloud Config简介

  2、Config Server基本使用

  3、Config Client基本使用

  4、Config整合Eureka

  5、Config配置搜索路径

 


SpringCloud Config简介

 SpringCloud Config为微服务架构中的微服务提供集中化的外部配置支持,配置服务器为各个不同微服务应用的所有环境提供了一个中心化的外部配置。

 SpringCloud Config分为服务端和客户端两部分。
 服务端也称为分布式配置中心,它是一个独立的微服务应用,用来连接配置服务器并为客户端提供获取配置信息,加密/解密信息等访问接口。
 客户端则是通过指定的配置中心来管理应用资源,以及与业务相关的配置内容,并在启动的时候从配置中心获取和加载配置信息,配置服务器默认采用git来存储配置信息,这样就有助于对环境配置进行版本管理,并且可以通过git客户端工具来方便的管理和访问配置内容。
用途:
 集中管理配置文件。
 不同环境不同配置,动态化的配置更新,分环境部署比如dev/test/prod/beta/release。
 运行期间动态调整配置,不再需要在每个服务部署的机器上编写配置文件,服务会向配置中心。
 统一拉取配置自己的信息。
 当配置发生变动时,服务不需要重启即可感知到配置的变化并应用新的配置。
 将配置信息以REST就接口的形式暴露。

技术图片

 

 

 

 

Config Server端主要和Git/SVN服务器

通俗点,就是统一管理配置,包括方便切换环境配置,以及修改配置无需动代码,省心省力;

如果用上SpringCloud Bus,能实现无需重启,自动感知配置变化以及应用新配置;

技术图片


Config Server基本使用

首先第一步,要搞个 configServer来联通远程GIT仓库,来读取远程配置;

这里GIT仓库,我们一般选用GitHub https://github.com/,或者码云  https://gitee.com/  

我们这里GitHub演示github官网:https://github.com/

关于github在window系统中使用可以查看博客https://www.cnblogs.com/huangting/p/11684508.html

建个仓库 microservice-config  然后 Git下载本地

技术图片

把仓库克隆到本地仓库以后把项目中的application.yml文件复制进去在push到github仓库中,测试yml文件可否上传到github

技术图片

技术图片

其中出现的window转义问题解决可看我上篇博客:https://www.cnblogs.com/huangting/p/11945774.html

技术图片

 

成功。那么我们来玩一下Springcloudserver和github仓库的配置文件交互

首先在ideaul中创建一个Springboot工程,microservice-config-server-4001

然后在pom中添加一个依赖:

 

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.ht</groupId>
        <artifactId>htSpringCloud</artifactId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <artifactId>microservice-config-server-4001</artifactId>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>

 

在启动类ConfigServerApplication_4001中添加注释@EnableConfigServer

 

 

package com.ht.microserviceconfigserver4001;

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

@EnableConfigServer
@SpringBootApplication
public class MicroserviceConfigServer4001Application {

    public static void main(String[] args) {
        SpringApplication.run(MicroserviceConfigServer4001Application.class, args);
    }

}

然后配置yml文件,给它添加一段集合git的url (记住访问git的http地址而不是ssh地址)

技术图片

server:
  port: 4001

spring:
  application:
    name:  microservice-config
  cloud:
    config:
      server:
        git:
          uri: https://github.com/haungting/htmicroservice-config.git 
//从git你的仓库里面复制下来的http地址,url变化因人而异,这样git才可以请求

单单是这样还不行,我们还要配置本地映射:

找到本机C:\Windows\System32\drivers\etc 地址下的host文件

加以下配置:

127.0.0.1  configserver.ht.com

 技术图片

 

 

 

然后我们请求:http://configserver.ht.com:4001/application-xxx.yml

 返回结果了正确的文本结果;

技术图片

 

请求路径,也有相应的匹配规则:

The HTTP service has resources in the form:

/{application}/{profile}[/{label}]

/{application}-{profile}.yml

/{label}/{application}-{profile}.yml

/{application}-{profile}.properties

/{label}/{application}-{profile}.properties

 

详细可参考:https://www.cnblogs.com/hellxz/p/9306507.html


 

Config Client基本使用

  这里我们需要建立Client端去调用server端,然后实现client端获取远程git配置信息

因为测试需要所以我们提交三个配置文件到远程git库

技术图片

application.yml:

---
spring:
  profiles:
    active: dev
---
spring:
  profiles: dev
port: 111
---
spring:
  profiles: test
port: 222

crm-dev.yml:

port:
  777

crm-test.yml:

port:
  888

技术图片

 

然后我们新建一个springboot工程  microservice-config-client-5001

技术图片

 

 

 给项目pom文件中添加依赖并且修改父id:

<parent>
        <groupId>com.ht</groupId>
        <artifactId>htSpringCloud</artifactId>
        <version>1.0-SNAPSHOT</version>
    </parent>


<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

因为git在读取配置文件的之后最先读取bootstrap.yml,并且bootstrap.yml中存放的都是项目中通用不改变的配置,

我们项目启动的时候,要调用server config端,获取配置信息

所以这里要bootstrap.yml配置文件

 

spring:
  application:
    name: application-dev
  cloud:
    config:
      name: crm
      uri: http://configserver.ht.com:4001
      profile: test
      label: master
      fail-fast: true

 

 

 

 

 

 

 

 

SpringCloudConfig相关配置简介、使用、整合Eureka

标签:题解   版本管理   实现   art   svn服务器   pen   coding   无需重启   配置   

原文地址:https://www.cnblogs.com/huangting/p/11946401.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!