SpringCloud之路开启篇3:Hystrix(断路器)+Zuul(路由网关)

1  断路器Hystrix

        Hystrix是一个用于处理分布式系统的延迟和容错的开源库,在分布式系统里,许多依赖不可避免的会调用失败,比如超时、异常等,Hystrix能够保证在一个依赖出问题的情况下,不会导致整体服务失败,避免级联故障,以提高分布式系统的弹性。

        “断路器”本身是一种开关装置,当某个服务单元发生故障之后,通过断路器的故障监控(类似熔断保险丝),向调用方返回一个符合预期的、可处理的备选响应(FallBack),而不是长时间的等待或者抛出调用方无法处理的异常,这样就保证了服务调用方的线程不会被长时间、不必要地占用,从而避免了故障在分布式系统中的蔓延,乃至雪崩。

1.1  ribbon-hystrix版断路器

启动RibbonHystrixApplication,重复访问:http://localhost:8766/hello?name=shawn

停止一个EurekaClientApplication:8763,重复访问:http://localhost:8766/hello?name=shawn

再多访问几次,发现不再出现‘hello!shawn,An Error Has Occurred’,说明不在访问8763端口。避免了整体服务失败和雪崩效应。

1.2  feign-hystrix版断路器

启动FeignHystrixApplication,重复访问:http://localhost:8767/hello?name=shawn

停止一个EurekaClientApplication:8763,重复访问:http://localhost:8767/hello?name=shawn

      ************其实feign是自带断路器的,可以试着把hystrix的依赖注释掉,也一样可以测试成功。

2  路由网关Zuul

     2.1  概述:

  • Zuul包含了对请求的路由和过滤两个最主要的功能:
    其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础而过滤器功能则负责对请求的处理过程进行干预,是实现请求校验、服务聚合等功能的基础.

  • Zuul和Eureka进行整合,将Zuul自身注册为Eureka服务治理下的应用,同时从Eureka中获得其他微服务的消息,也即以后的访问微服务都是通过Zuul跳转后获得。

    注意:Zuul服务最终还是会注册进Eureka

  • 代理+路由+过滤三大功能

        启动测试,访问:http://localhost:8768/shawn/zuul-a/hello?name=shawn(依次访问zuul-a,zuul-b,zuul-c,zuul-d),交替出现。

关闭EurekaClientApplication:8762端口,重复访问:http://localhost:8768/shawn/zuul-d/hello?name=shawn,说明断路器功能正常,负载均衡功能也正常,重复访问多次后,不再访问8762端口。

2.2  Zuul拦截功能

        添加一个Myfilter类集成ZuulFilter, 启动测试,访问:http://localhost:8768/shawn/zuul-a/hello?name=shawn&password=xxxxxx

 

参考来源:https://blog.csdn.net/weixin_40037053/article/details/85088357

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值