【springcloud】服务降级应用策略研究

2019-05-25 23:56:57 浏览数 (1)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1434199

今天给大家介绍一下事务降级实际的应用场景,这边我以电商项目为例,给大家介绍一下服务降级在实际项目过程中的应用。

应用场景:

app商城首页一般最后一部分都是猜你喜欢这个模块,通过对用户的购买行为、浏览记录、收藏记录等等进行大数据分析,然后给每一个用户推送自己可能喜欢的商品。这边就会涉及到两个服务之间的调用了,一个是商城首页服务、两外一个是用户商品推荐服务。服务之间调用是没办法做到100%的成功的,有时候会因为服务出错、网络延迟等等之类导致最后调用服务失败。

假如说商城首页服务调用用户商品推荐服务的时候出错或者长时间没有返回,这个时候商城首页服务就会熔断掉请求,然后降级处理。这边降级处理一般会取商城的热门商品返回给首页,这样猜你喜欢模块在用户看来也没有任务问题,对系统而言只是损失了推荐商品的精度,这部分其实是可以忍受的。

流程图:

问题描述:

这边还有一个问题需要大家思考一下,如果商城首页服务在调用用户商品推荐服务超时,然后进行服务的降级处理,会促发调用接口的事务回滚吗(接口启动了事务注解)?

问题解答:

这边主要取决于降级函数里面处理方式了,如果降级函数里面只是做正常的业务降级处理,没有抛出异常的话,那调用接口就不会促发事务回滚,如果降级函数抛出异常的话,那调用接口就会促发事务回滚。所以最终是否回滚,取决于降级处理中是否抛出异常。

总结:

今天主要讲的内容有两方面:一是服务降级的应用场景、第二是服务降级是否会促发事务回滚机制。具体我们要如何来应用,还得看实际业务场景是什么,因材施教才是最妥当的。好了今天的内容就介绍到这边了,谢谢大家的阅读~

0 人点赞