SpringCloud架构开发实战:实现服务负载均衡及高可用
实现服务的负载均衡及高可用
在前面我们重新实现了微服务,其中天气数据采集微服务、天气预报微服务都重新采用了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实例两个。启动脚本如下。
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。
本篇文章内容给大家讲解的是实现服务的负载均衡及高可用
下篇文章给大家讲解API网关的意义和常见API网关的实现方式;
觉得文章不错的朋友可以转发此文关注小编;
感谢大家的支持
本文就是愿天堂没有BUG给大家分享的内容,大家有收获的话可以分享下,想学习更多的话可以到微信公众号里找我,我等你哦。