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

来源:互联网 发布:淘宝店铺的介绍女装 编辑:程序博客网 时间:2024/05/01 10:52

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=8888spring.application.name=config-server######################注册服务######################eureka.instance.hostname=config-servereureka.client.register-with-eureka=trueeureka.client.fetch-registry=trueeureka.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=rootspring.cloud.config.server.git.password=root# 开启消息跟踪(可忽略)spring.cloud.bus.trace.enabled=truespring.cloud.bus.refresh.enabled=truemanagement.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@EnableConfigServerpublic 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的服务了:

这里写图片描述

阅读全文
0 0