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

本贴最后更新于 2499 天前,其中的信息可能已经时移世异

自学 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

支持

如果你喜欢~ 给个星星

  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3167 引用 • 8207 回帖
  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    940 引用 • 1458 回帖 • 158 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • xjtushilei 1

    @88250 出 bug 了吗 我明明记得发布了第一篇的。

    1 回复
  • yangyujiao 1

    刚才我就在找第一篇····
    没找到 然后在第二篇回复了 😂

  • 88250 1

    刚刚真的没有第一篇

    1 回复
  • xjtushilei 1

    可能我晕了。。。。

  • flhuoshan 1

    学生有这钻研精神很难得啊 😝

  • 厉害 👍

  • pospospos2007 1

    厉害了,我的哥,你是上海交大还是北交大啊?

    1 回复
  • tmedivh 1

    厉害了, 公司现在也在用这个,从 0 开始

  • xjtushilei 1

    西安交大😅😅

  • zonghua

    问一个简单的问题,配置服务能用来更新类似 MySQL 连接吗?我认为只能在重启的时候更新,因为只有启动的时候读取了一次配置?没机会实践。

    1 回复
  • xjtushilei

    我也没试过。。。可是试一下。

    1 回复
  • zonghua

    刚才试过了,不能更新数据库连接等启动时读取的配置。
    所以 Spring Boot Actuator 提供了 refresh 还有 restart 接口。

请输入回帖内容 ...