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

202 篇文章 8 订阅
105 篇文章 0 订阅
本文详细介绍了如何在SpringCloud架构中实现服务的负载均衡和高可用性。通过使用Feign和Eureka,实现了微服务之间的负载均衡,并通过运行多个实例展示了系统在服务故障时仍能保持可用性。同时,文章提供了相关的源码示例。
摘要由CSDN通过智能技术生成

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

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

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

 

天气预报系统的微服务

截至目前,天气预报系统的最新版本微服务共有以下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管理界面。

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

 

测试天气预报服务

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

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

 

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

源码

本节示例所涉及的源码,见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. 感谢大家的支持
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值