Spring Cloud(二)实践中诞生的Hystrix 之一

2019-10-13  本文已影响0人  瑞瑞余之

上一篇文章讲到了服务发现,这相当于索引服务,服务被发现之后,就涉及到调用,那么由于微服务自身架构的复杂性,可能因为某一个服务的异常连带导致上层多个服务奔溃,这样的情况我们称为雪崩效应。本文从一个实际场景出发,模拟Hystrix的诞生起因和经过,方便初识Hystrix的朋友更好的理解这个工具。
我们先来看这样一个场景,当我们第一次注册某个电商app后,为了刺激我们消费同时保证用户留存,平台会赠送优惠卷和积分给注册用户;同时一旦积分达到一定数额之后,可以用来兑换优惠卷。我们就以次为例来构建微服务,并讨论一下,这样一个微服务架构可能出现哪些问题,并该如何解决?


新用户注册场景

此时优惠卷服务器部署的当地网络出现故障,优惠卷服务延时很高,用户注册服务发过来的请求需要响应很长时间,资源无法释放,同时大量的用户注册app,导致进入用户注册服务的请求越来越多,这样一来用户注册服务因为资源不足导致崩溃。可见,由于优惠卷服务的网络问题,连带造成用户注册服务崩溃,这显然不是我们想看到的局面,这个时候我们不借助任何框架,来想一下这个问题应该如何解决。

1. 无框架解决方案

2. Hystrix解决方案

Hystrix是netflix孵化的一个库,它提供延时容忍、容错机制,避免延时或失败在服务之间传播。Spring Cloud团队将其封装到Spring Cloud Netflix项目当中,为我们的开发提供了更便捷的接口。
同样的还是上面那个例子:用户注册服务、优惠卷服务、积分服务。

上一篇 下一篇

猜你喜欢

热点阅读