Spring-Cloud 系列第 5 篇:spring-cloud-config-eureka-ribbon

本贴最后更新于 2528 天前,其中的信息可能已经水流花落

自学 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: 网关基础服务

介绍

spring cloud 的 config server 如果挂掉了怎么办?那岂不是整个服务就瘫痪了,没关系,我们将其高可用,利用其内嵌的 ribbon 进行负载均衡。

准备

在开始之前,你需要明白:

  • config server 和 config client 的基本使用 (第一篇文章)
  • eureka 的服务注册与发现 (第二篇)
  • 利用命令行 active profile 文件,启动多个实例(第三篇)

开始

1. server 端

配置文件:

spring.application.name=config-server

server.port=8888
spring.cloud.config.server.git.uri=file:///${user.home}/config-repo
eureka.client.service-url.defaultZone=http://localhost:8761/eureka/

几乎没有变化,多启用几个实例就好了,在配置文件中只改变 端口 就行了。

2. client 端

2.1. 配置文件

在设置文件中去掉直接的 url 路径,加入自动发现功能即可。

:这三个配置文件都需要放到 bootstrap.properties 的配置中。因为在加载 application.properties 的时候,已经取到了 git 上的配置文件

spring.cloud.config.discovery.enabled=true
spring.cloud.config.discovery.serviceId=config-server

eureka.client.service-url.defaultZone=http://localhost:8761/eureka/

其中,serviceId 是你的服务的名字。

本质就是根据服务名称,来用 ribbon 选择使用哪个 server 服务器。

测试

如图,server 有两个,client 的应用有一个,当我们停掉一个 server 服务,重启 client 依然能够正常运行。

因为我们还没有学到热加载,即更改 git 的配置文件,立即热更新服务,不需要重启,所以必须关掉 client 来测试。

在下一篇,我们将会介绍具体的使用 Spring Cloud Bus 来热加载配置信息。

示例源码

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

支持

如果你喜欢~给个星

  • Java

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

    3169 引用 • 8207 回帖
  • Spring

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

    941 引用 • 1458 回帖 • 138 关注

相关帖子

欢迎来到这里!

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

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