Spring-Cloud 系列第 1 篇:spring-cloud-config

自学 spring-cloud 系列,越来越感觉 spring-cloud 很强大!

主要分为以下几篇:

  1. spring-cloud-config: 分布式配置管理
  2. spring-cloud-eureka: 服务注册与发现
  3. spring-cloud-eureka-consumer: 远程服务调用和及其负载均衡
  4. spring-cloud-Hystrix: 熔断器保证服务高可用
  5. spring-cloud-config-eureka-ribbon: 分布式配置管理的高可用
  6. spring-cloud-bus: 配置信息的实时更新
  7. spring-cloud-zuul: 网关基础服务

介绍

创建配置管理服务器及实现分布式配置管理应用,实现统一配置管理。

提供三种方式:

  • 基于 git
  • 基于 svn(淘汰)
  • 基于本地文件(测试使用)

如何使用

  • 创建 server 端
  • 创建 client 端

    1. 创建 server 端

让你的分布式的应用可以取到配置。服务端很简单,只需要配置你的配置文件位于哪里就行了。

pom.xml:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-config-server</artifactId>
</dependency>

当然了,我已经在全局加入了一些其他配置文件,因为我使用了模块式的开发,所以这里很简单。

配置文件:

spring.application.name=config-server

server.port=8888
spring.cloud.config.server.git.uri=file:///${user.home}/config-repo

一般端口都是 8888,可以随意设置,git 这里我采用了本地 git,方便测试。如果是远程的话,肯定是私有的内部公开的,可以使用用户名和密码登录。官网查看最新的配置文件即可。

启动:

@SpringBootApplication
@EnableConfigServer
public class SpringCloudConfigServerApplication {

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

在启动文件里,加入这样一句话就好啦。

2. 创建 client 端

当然了,也很简单。

pom.xml:

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

配置文件:

spring.application.name=appname1
server.port=8082
spring.profiles.active=dev
spring.cloud.config.profile=dev
spring.cloud.config.uri=http://localhost:8888/

这里主要就是你的服务端在哪里。spring.application.namespring.cloud.config.profile 决定了会去远程 git 里取哪一个 git 文件。spring.profiles.active决定了使用哪个版本。

其实,这里就是你的拥有一大堆逻辑代码的那个应用。所以这里可以用各种各样的配置文件。当然了,我们推荐你全部都配置在远程端。不然以后修改或者临时需求修改很麻烦。

使用配置:

@Value("${foo}")
String foo;

这是我使用了自己的配置的方法,如果是 spring 自己的话,比如数据库配置的 datasource 等,会直接使用。

示例源码

所有源码在我的 github 仓库里,传送门:https://github.com/xjtushilei/spring-cloud-simples.git

支持

如果你喜欢 ~ 给个星星