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的工作原理:
Zuul网关的作用
网关有以下几个作用:
统一入口:未全部为服务提供一个唯一的入口,网关起到外部和内部隔离的作用,保障了后台服务的安全性。
鉴权校验:识别每个请求的权限,拒绝不符合要求的请求。
动态路由:动态的将请求路由到不同的后端集群中。
减少客户端与服务端的耦合:服务可以独立发展,通过网关层来做映射。