SpringCloud架构开发实战:实现服务负载均衡及高可用

2022-10-28 15:56:10 浏览数 (1)

实现服务的负载均衡及高可用

在前面我们重新实现了微服务,其中天气数据采集微服务、天气预报微服务都重新采用了Feign技术,以便通过应用的名称来访问外部RESTful服务。结合Eureka部署实例,就能实现微服务的负载均衡及高可用。

天气预报系统的微服务

截至目前,天气预报系统的最新版本微服务共有以下4个。

msa-weather-collection-cureka-feign:基于msa-weather-collection-cureka和Feign实现的天气数据采集微服务。

msa-weather-data-eureka:天气数据API微服务。

.msa-weather-city-eureka:城市数据微服务。

msa-weather-report-cureka-feign:基于msa-weather-report-cureka和Feign实现的天气预报采集微服务。

运行微服务实例

我们先运行Eureka Server实例 micro-weather-cureka-server,它启动在8761端口。

其次要运行Redis服务器。

而后我们分别在8081和8082上启动了 msa-weather-collection-cureka-feign'实例两个,在8083和8084上启动了msa-weather-data-eureka实例两个,在8085和8086上启动了msa-weather-city-eu-reka实例两个,在8087和8088上启动了msa-weather-report-eureka-feign实例两个。启动脚本如下。

代码语言:javascript复制
java -jar micro-weather-eureka-server-1.0.0.jar --server.port=8761
java -jar msa-weather-collection-eureka-feign-1.0.0.jar--server.port=8081
java-jar msa-weather-collection-eureka-feign-1.0.0.jar --server.port=8082
java -jar msa-weather-data-eureka-1.0.0.jar--server.port=8083
java -jarmsa-weather-data-eureka-1.0.0.jar --server.port=8084
java -jar msa-weather-city-eureka-1.0.0.jar --server.port=8085
java-jar msa-weather-city-eureka-1.0.0.jar --server.port=8086
java-jar msa-weather-report-eureka-feign-1.0.0.jar --server.port=8087
java -jar msa-weather-report-eureka-feign-1.0.0.jar --server.port=8088

这样,就可以在Eureka Server上看到这8个实例的信息。访问http://localhost:8761,可以看到如图9-3所示的Eureka Server自带的UI管理界面。

测试天气预报服务

访问天气预报微服务的任意一个实例,都能够正常使用天气预报服务。例如,我们通过浏览器访问其中一个实例 http:/localhost:8088/reportlcityld/101280601,能看到如图9-4所示的天气预报服务界面。

我们可以关闭其他微服务的任意一个实例来模拟故障。例如,关闭城市数据微服务中的一个实例,只要还有另一个实例在正常运行,那么,天气预报系统就仍然能够正常使用。这说明天气预报系统已经具备了负载均衡的功能,以及能够在服务异常的情况下保证整个系统的可用性的能力。

源码

本节示例所涉及的源码,见 micro-weather-eureka-server、msa-weather-data-cureka和 msa-weather-city-eureka,以及msa-weather-collection-cureka-feign和 msa-weather-report-eureka-feign。

本篇文章内容给大家讲解的是实现服务的负载均衡及高可用

  1. 下篇文章给大家讲解API网关的意义和常见API网关的实现方式;
  2. 觉得文章不错的朋友可以转发此文关注小编;
  3. 感谢大家的支持

本文就是愿天堂没有BUG给大家分享的内容,大家有收获的话可以分享下,想学习更多的话可以到微信公众号里找我,我等你哦。

0 人点赞