(九)整合spring cloud云服务架构 - commonservice-config配置服务搭建

1. 介绍

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

2. 引入pom相关jar包,其中pom.xml配置如下:

Xml代码

代码语言:javascript
复制
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">  
    <modelVersion>4.0.0</modelVersion>
&lt;parent&gt;  
    &lt;groupId&gt;com.ml.honghu&lt;/groupId&gt;  
    &lt;artifactId&gt;commonservice&lt;/artifactId&gt;  
    &lt;version&gt;0.0.1-SNAPSHOT&lt;/version&gt;  
&lt;/parent&gt;  
  
&lt;artifactId&gt;commonservice-config&lt;/artifactId&gt;  
&lt;packaging&gt;jar&lt;/packaging&gt;  

&lt;name&gt;commonservice-config&lt;/name&gt;  
&lt;description&gt;Config Server&lt;/description&gt;  

&lt;dependencies&gt;  
    &lt;dependency&gt;  
        &lt;groupId&gt;org.springframework.cloud&lt;/groupId&gt;  
        &lt;artifactId&gt;spring-cloud-config-server&lt;/artifactId&gt;  
    &lt;/dependency&gt;  
    &lt;dependency&gt;  
        &lt;groupId&gt;org.springframework.cloud&lt;/groupId&gt;  
        &lt;artifactId&gt;spring-cloud-starter-eureka&lt;/artifactId&gt;  
    &lt;/dependency&gt;  
    &lt;dependency&gt;  
                &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;  
                &lt;artifactId&gt;spring-boot-starter-security&lt;/artifactId&gt;  
        &lt;/dependency&gt;  
    &lt;dependency&gt;  
        &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;  
        &lt;artifactId&gt;spring-boot-starter-test&lt;/artifactId&gt;  
        &lt;scope&gt;test&lt;/scope&gt;  
    &lt;/dependency&gt;  
&lt;/dependencies&gt;  

&lt;build&gt;  
    &lt;plugins&gt;  
        &lt;plugin&gt;  
            &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;  
            &lt;artifactId&gt;spring-boot-maven-plugin&lt;/artifactId&gt;  
            &lt;executions&gt;  
                &lt;execution&gt;  
                    &lt;id&gt;1&lt;/id&gt;  
                    &lt;goals&gt;  
                        &lt;goal&gt;repackage&lt;/goal&gt;  
                    &lt;/goals&gt;  
                &lt;/execution&gt;  
                                &lt;execution&gt;  
                                    &lt;id&gt;2&lt;/id&gt;  
                                        &lt;goals&gt;  
                                               &lt;goal&gt;build-info&lt;/goal&gt;  
                                        &lt;/goals&gt;  
                                &lt;/execution&gt;  
            &lt;/executions&gt;  
        &lt;/plugin&gt;  
    &lt;/plugins&gt;  
&lt;/build&gt;  

</project>

 3. 在src/main/java进行ConfigApplication.java启动文件配置:

Java代码

代码语言:javascript
复制
package com.ml.honghu;

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;

@EnableConfigServer
@EnableEurekaClient
@SpringBootApplication
public class ConfigApplication {

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

}

 4. 在src/main/resource下进行bootstrap.yml配置

Java代码

代码语言:javascript
复制
server:
port: 8888
spring:
application:
name: commonservice-config-server
profiles:
active: discovery,native
cloud:
config:
server:
git:
uri: http://192.168.0.254/honghu.../honghu-config.git
username: honghu
password: 123456
searchPaths: config-dev
security:
basic:
enabled: true
user:
name: honghu
password: 123456
eureka:
client:
serviceUrl:
defaultZone: http://honghu:123456@localhost:8761/eureka/
honghuZone: http://honghu:123456@localhost:8761/eureka/
registry-fetch-interval-seconds: 300
availability-zones:
honghu: honghuZone
instance:
prefer-ip-address: true
metadataMap:
version: 1.0
variant: A
user: ${security.user.name}
password: ${security.user.password}
management:
security:
enabled: false

 注意: 如果不从远程git或者svn库加载配置文件信息,可以配置加载本地地址,比如window下配置使用:

Java代码

代码语言:javascript
复制
server:
port: 8888
spring:
application:
name: commonservice-config-server
profiles:
active: discovery,native
cloud:
config:
server:
<span style="color: #ff0000;">native.searchLocations: d:/honghu-config</span>
security:
basic:
enabled: true
user:
name: honghu
password: 123456
eureka:
client:
serviceUrl:
defaultZone: http://honghu:123456@localhost:8761/eureka/
honghuZone: http://honghu:123456@localhost:8761/eureka/
registry-fetch-interval-seconds: 300
availability-zones:
honghu: honghuZone
instance:
prefer-ip-address: true
metadataMap:
version: 1.0
variant: A
user: ${security.user.name}
password: ${security.user.password}
management:
security:
enabled: false

 到此,整个config服务项目配置完毕!!(企业架构源码可以加求球:叁五三陆二肆柒二伍玖)

从现在开始,我这边会将近期研发的spring cloud微服务云架构的搭建过程和精髓记录下来,帮助更多有兴趣研发spring cloud框架的朋友,大家来一起探讨spring cloud架构的搭建过程及如何运用于企业项目。