自学 spring-cloud 系列,越来越感觉 spring-cloud 很强大!
主要分为以下几篇:
介绍
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
支持
如果你喜欢~给个星
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于