spring cloud系列-02.配置中心Config搭建

Spring Cloud Config为分布式系统中的外部配置提供服务器和客户端支持。使用Config Server,您可以在所有环境中管理应用程序的外部属性。客户端和服务器上的概念映射与Spring Environment和PropertySource抽象相同,因此它们与Spring应用程序非常契合,但可以与任何以任何语言运行的应用程序一起使用。随着应用程序通过从开发人员到测试和生产的部署流程,您可以管理这些环境之间的配置,并确定应用程序具有迁移时需要运行的一切。服务器存储后端的默认实现使用git,因此它轻松支持标签版本的配置环境,以及可以访问用于管理内容的各种工具。可以轻松添加替代实现,并使用Spring配置将其插入。
参考:spring cloud config 中文文档地址

本文主要讲述config工程搭建过程,使用的gitlab作为配置服务器。当然你也可以选择本地文件系统或者SNV来作为你配置中心的配置管理服务器。
下面是整个搭建过程和一些主要说明,如有错误欢迎指正。

1.pom文件

<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.xxxx</groupId>
  <artifactId>spring-config</artifactId>
  <version>1.0.0-SNAPSHOT</version>
  <packaging>jar</packaging>

  <parent>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-parent</artifactId>
    <version>Dalston.SR1</version>
    <relativePath /> <!-- lookup parent from repository -->
  </parent>

  <!-- spring boot基本环境 -->
  <dependencies>
    <!--服务配置所需环境 -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-config-server</artifactId>
        <exclusions>
              <exclusion>
                  <groupId>org.springframework</groupId>
                  <artifactId>spring-aop</artifactId>
              </exclusion>
          </exclusions>
    </dependency>
    <!--服务注册所需环境 -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-eureka</artifactId>
         <exclusions>
              <exclusion>
                  <groupId>org.springframework</groupId>
                  <artifactId>spring-aop</artifactId>
              </exclusion>
          </exclusions>
    </dependency>
      <dependency>
          <groupId>org.springframework.cloud</groupId>
          <artifactId>spring-cloud-starter-hystrix</artifactId>
      </dependency>
       <dependency>
           <groupId>org.springframework.cloud</groupId>
           <artifactId>spring-cloud-starter-bus-amqp</artifactId>
       </dependency>
        <!-- 添加monitor监控(可忽略) -->
        <dependency>
            <groupId>de.codecentric</groupId>
            <artifactId>spring-boot-admin-starter-client</artifactId>
            <version>1.3.4</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.jolokia</groupId>
            <artifactId>jolokia-core</artifactId>
        </dependency>
  </dependencies>
   <build>
       <plugins>
            <plugin>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>  
                <groupId>org.apache.maven.plugins</groupId>  
                <artifactId>maven-compiler-plugin</artifactId>  
                <configuration>  
                    <source>1.8</source>  
                    <target>1.8</target>  
                </configuration>  
            </plugin>  
       </plugins>
   </build>

</project>

2.application.properties配置文件

server.port=8888
spring.application.name=config-server

######################注册服务######################
eureka.instance.hostname=config-server
eureka.client.register-with-eureka=true
eureka.client.fetch-registry=true
eureka.client.serviceUrl.defaultZone=http://127.0.0.1:8761/eureka/
eureka.instance.prefer-ip-address=true

#######################本地配置中心
#spring.profiles.active=native
#spring.cloud.config.server.native.searchLocations=file:F:\\springcloud\\config
#spring.cloud.config.profile=dev

######################远程配置中心######################
#config工程所在gitlab地址
spring.cloud.config.server.git.uri=http://192.168.1.88:10080/spring-config.git
#配置文件所处的位置,config表示在工程根目录的config目录下找配置文件
spring.cloud.config.server.git.searchPaths=config
#分支名称,会拉取spring-config工程的master分支中的配置和代码
spring.cloud.config.label=master
#可以理解为后缀,和注册中心的spring.application.name+该后缀+.properties获取该服务的相应配置文件
#如在注册中心注册了个名为【kafka-server】的服务,则kafka-server启动时则会去config文件夹下load
#名为【kafka-server-dev.properties】的配置文件
spring.cloud.config.profile=dev
#gitlab服务器的登录用户名和密码
spring.cloud.config.server.git.username=root
spring.cloud.config.server.git.password=root

# 开启消息跟踪(可忽略)
spring.cloud.bus.trace.enabled=true
spring.cloud.bus.refresh.enabled=true
management.security.enabled=false
# 注册中心中的服务说明(可忽略)
info.app.name="@project.name@"
info.app.description="config-server for project"
info.app.version="@project.version@"
info.app.spring-boot-version="@project.parent.version@"

3.spring cloud 启动类

package com.spring.config;

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

@EnableEurekaClient 
@SpringBootApplication
@EnableConfigServer
public class ConfigServerApplication {

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

注解说明
@EnableEurekaClient:
开启注册中心客户端,配合application.properties中的【注册服务】配置块可将服务注册到注册中心
@SpringBootApplication:
springboot启动类注解
@EnableConfigServer:
我是config server,这个比较好理解了。

到此为止config搭建完毕,整个工程的目录结构如下:

spring-config
|--src/main/java
|  |-- com.spring.config
|  |   |-- ConfigServerApplication.java
|--src/main/resources
|  |--application.proerties
|--config
|  |--kafka-server-dev.proerties
|--pom.xml 

启动注册中心和config服务,在注册中心应该可以看到config-server的服务了:

这里写图片描述

猜你喜欢

转载自blog.csdn.net/sukiyou_xixi/article/details/78732278