hystrix+zuul 桃扇骨 2023-07-02 07:26 16阅读 0赞 ## hystrix: ## 熔断:请求直接返回,不走网络请求,保持服务器之间通信,不影响其他服务 降级:每次调用挂掉的服务,返回一个提示信息,服务恢复后,在手动添加,这就是降级 用法: ribbon: pom.xml加入依赖 org.springframework.cloud spring-cloud-starter-netflix-hystrix 启动类加入@EnableHystrix注解开启Hystrix 方法上加上@HystrixCommand注解。该注解对该方法创建了熔断器的功能,并指定了fallbackMethod熔断方法,熔断方法直接返回 return ResultEntity.error(“服务器异常…”); feign: 在配置文件加以下代码:feign.hystrix.enabled=true 在service层FeignClient的加入fallbackk的指定类 在创建一个类继承这个接口 package com.qpx.upmsnacosfeign.service; import com.qpx.common.dto.UserDto; import com.qpx.common.vo.ResultEntity; import org.springframework.stereotype.Component; @Component public class UserServiceHystrix implements UserService\{ @Override public ResultEntity getUserList(UserDto userDto) \{ return ResultEntity.error(“服务器哪去了…”); \} \} ## Zuul网关 ## zuul是什么 zuul 是netflix开源的一个API Gateway 服务器, 本质上是一个web servlet应用。Zuul在云平台上提供动态路由,监控 Zuul的主要功能是路由转发和过滤器 zuul默认和Ribbon结合实现了负载均衡的功能 Zuul网关的核心是一系列的过滤器 在zuul中过滤器分为四种: 1.PRE Filters(前置过滤器):当请求会路由转发到具体后端服务器前执行的过滤器,比如鉴权过滤器,日志过滤器,还有路由选择过滤器 2.ROUTING Filters (路由过滤器):该过滤器作用是把请求具体转发到后端服务器上,一般是通过Apache HttpClient 或者 Netflix Ribbon把请求发送到具体的后端服务器上 3.POST Filters(后置过滤器):当把请求路由到具体后端服务器后执行的过滤器;场景有添加标准http 响应头,收集一些统计数据(比如请求耗时等),写入请求结果到请求方等。 4.ERROR Filters(错误过滤器):当上面任何一个类型过滤器执行出错时候执行该过滤器 zuul1.0的工作原理: ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Byb2dyYW1tZXJfdW5pb24_size_16_color_FFFFFF_t_70] Zuul网关的作用 网关有以下几个作用: 统一入口:未全部为服务提供一个唯一的入口,网关起到外部和内部隔离的作用,保障了后台服务的安全性。 鉴权校验:识别每个请求的权限,拒绝不符合要求的请求。 动态路由:动态的将请求路由到不同的后端集群中。 减少客户端与服务端的耦合:服务可以独立发展,通过网关层来做映射。 [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Byb2dyYW1tZXJfdW5pb24_size_16_color_FFFFFF_t_70]: https://img-blog.csdnimg.cn/20200127211117928.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Byb2dyYW1tZXJfdW5pb24=,size_16,color_FFFFFF,t_70
还没有评论,来说两句吧...