Spring Cloud云服务架构 - commonservice-config配置服务搭建

1. 介绍

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

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

<?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>  

    <parent>
        <groupId>com.ml.honghu</groupId>
        <artifactId>commonservice</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>  

    <artifactId>commonservice-config</artifactId>
    <packaging>jar</packaging>  

    <name>commonservice-config</name>
    <description>Config Server</description>  

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-server</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka</artifactId>
        </dependency>
        <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-security</artifactId>
            </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>  

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>1</id>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                                    <execution>
                                        <id>2</id>
                                            <goals>
                                                   <goal>build-info</goal>
                                            </goals>
                                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

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

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配置

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:[email protected]:8761/eureka/
      honghuZone: http://honghu:[email protected]: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下配置使用:

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:[email protected]:8761/eureka/
      honghuZone: http://honghu:[email protected]: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架构的搭建过程及如何运用于企业项目。

原文地址:https://www.cnblogs.com/allalongx/p/8464285.html

时间: 2024-11-09 01:02:18

Spring Cloud云服务架构 - commonservice-config配置服务搭建的相关文章

微服务架构:动态配置中心搭建

版权声明:本文为博主原创文章,转载请注明出处,欢迎交流学习! 在微服务架构中,服务之间有着错综复杂的依赖关系,每个服务都有自己的依赖配置,在运行期间很多配置会根据访问流量等因素进行调整,传统的配置信息处理方式是将配置信息写入xml..properties等配置文件中,和应用一起打包,每次修改配置信息,都需要重新进行打包,效率极低,动态配置中心就是为了解决这一问题.动态配置中心也是一个微服务,我们把微服务中需要动态配置的配置文件存放在远程git私有仓库上,微服务会去服务器读取配置信息,当我们在本地

Spring Cloud云服务 - HongHu架构common-service 项目构建过程

上一篇我们介绍了<整合spring cloud云服务架构 - HongHu云架构common-service代码结构分析>,本节我们将对common-service整个项目进行剖析,将整个构建的流程给记录下来,让更多的关注者来参考学习. 首先在构建spring cloud的common-service之前,我们需要准备的技术: Maven(项目构建).Spring Boot.Spring Cloud.微服务概念.去中心化思想.分布式等,针对于common-service的顶级项目,这里我们主要

(三)整合spring cloud云服务架构 - particle云架构代码结构构建

上一篇介绍了spring cloud云服务架构的基本架构图,本篇我们根据架构图进行代码的构建.根据微服务化设计思想,结合spring cloud本身的服务发现.治理.配置化管理.分布式等项目优秀解决方案,我们使用Maven技术将框架进行模块化.服务化.原子化封装,也为后期的热插拔.持续集成做一些准备工作. 另外在搭建环境之前,大家需要熟练掌握maven的使用及相关异常问题的处理. particle云架构使用maven来构建的,使用maven不仅仅是jar包的管控,重要的是要抓住maven的一个核

(四)整合spring cloud云服务架构 - particle-common-framework代码介绍

上一篇我们介绍了spring cloud云服务架构 - particle云架构代码结构,简单的按照几个大的部分去构建代码模块,让我们来回顾一下: 第一部分: 针对于普通服务的基础框架封装(entity.dao.service.controller.api)等 第二部分: spring cloud通用微服务项目,可以监控左右微服务,当然,本身自己也是微服务. 第三部分: 针对于框架内所有组件的封装,可以植入任何的模块项目中. 第四部分: 自身项目的微服务业务,比如:会员模块.消息模块.资金模块.订

Spring Cloud云服务根据架构图进行代码的构建

本篇我们根据架构图进行代码的构建.根据微服务化设计思想,结合spring cloud一些优秀的项目,如服务发现.治理.配置化管理.路由负载.安全控制等优秀解决方案,使用Maven技术将框架进行模块化.服务化.原子化封装并构建,也为后期的灰度发布.持续集成提前做好准备工作. 另外在搭建环境之前,大家需要熟练掌握maven的使用及相关问题的处理(这里不再重复介绍). Spring Cloud云架构使用maven来构建,使用maven不仅仅是jar包的管控,重要的是要抓住maven的一个核心作用,那就

Spring Cloud云服务架构代码结构构建

本篇我们根据架构图进行代码的构建.根据微服务化设计思想,结合spring cloud一些优秀的项目,如服务发现.治理.配置化管理.路由负载.安全控制等优秀解决方案,使用Maven技术将框架进行模块化.服务化.原子化封装并构建,也为后期的灰度发布.持续集成提前做好准备工作. 另外在搭建环境之前,大家需要熟练掌握maven的使用及相关问题的处理(这里不再重复介绍). Spring Cloud云架构使用maven来构建,使用maven不仅仅是jar包的管控,重要的是要抓住maven的一个核心作用,那就

spring cloud云服务架构 - HongHu commonservice-eureka 项目

上一篇我们回顾了关于 spring cloud eureka的相关基础知识,现在我们针对于HongHu cloud的eureka项目做以下构建,整个构建的过程很简单,我会将每一步都构建过程记录下来,希望可以帮助到大家: 创建一个名为particle-common-eureka的maven项目,继承particle-commonservice,具体的pom.xml配置文件如下: <?xml version="1.0" encoding="UTF-8"?>

spring cloud云服务架构 -eureka 项目

上一篇我们回顾了关于 spring cloud eureka的相关基础知识,现在我们针对于HongHu cloud的eureka项目做以下构建,整个构建的过程很简单,我会将每一步都构建过程记录下来,希望可以帮助到大家: 创建一个名为particle-common-eureka的maven项目,继承particle-commonservice,具体的pom.xml配置文件如下: <?xml version="1.0" encoding="UTF-8"?>

(五) 整合spring cloud云服务架构 - 云架构代码结构构建

上一篇介绍了<整合spring cloud云服务架构 - 企业分布式微服务云架构图>,本篇我们根据架构图进行代码的构建.根据微服务化设计思想,结合spring cloud一些优秀的项目,如服务发现.治理.配置化管理.路由负载.安全控制等优秀解决方案,使用Maven技术将框架进行模块化.服务化.原子化封装并构建,也为后期的灰度发布.持续集成提前做好准备工作. 另外在搭建环境之前,大家需要熟练掌握maven的使用及相关问题的处理(这里不再重复介绍). Spring Cloud云架构使用maven来

Spring Cloud构建微服务架构(五)服务网关

通过之前几篇Spring Cloud中几个核心组件的介绍,我们已经可以构建一个简略的(不够完善)微服务架构了.比如下图所示: alt 我们使用Spring Cloud Netflix中的Eureka实现了服务注册中心以及服务注册与发现:而服务间通过Ribbon或Feign实现服务的消费以及均衡负载:通过Spring Cloud Config实现了应用多环境的外部化配置以及版本管理.为了使得服务集群更为健壮,使用Hystrix的融断机制来避免在微服务架构中个别服务出现异常时引起的故障蔓延. 在该架