zuul 直接配置url,ip端口,测试异常场景

zuul 直接配置url,ip端口,测试异常场景

直接配置url: http://127.0.0.1:9001,不走hystrix,ribbon


zuul:
  host:
    socket-timeout-millis: 3000
    connect-timeout-millis: 3000
  prefix: /test
  routes:
    search:
      path: /admin/**
      url: http://127.0.0.1:9001
      stripPrefix: true


测试场景:


后端服务端口不通(127.0.0.1:9001不通)    进入error过滤器
http://localhost:8765/test/search/sku/list2


链接超时(127.0.0.1:9001超时)    进入error过滤器
http://localhost:8765/test/search/sku/list2


url routes 不匹配  404 不进入per过滤器
http://localhost:8765/test/search2/sku/list2

url prefix 不匹配  404 不进入per过滤器
http://localhost:8765/test2/search/sku/list2


url routes 匹配404 进入per过滤器,不到error过滤器
http://localhost:8765/test/search2/sku/list2

 

 

@Component  
public class ErrorFilter extends ZuulFilter {  
  
    private static Logger log = LoggerFactory.getLogger(ErrorFilter.class);  
  
    @Override  
    public String filterType() {  
        //异常过滤器  
        return "error";  
    }  
  
    @Override  
    public int filterOrder() {  
        //优先级,数字越大,优先级越低  
        return 0;  
    }  
  
    @Override  
    public boolean shouldFilter() {  
        //是否执行该过滤器,true代表需要过滤  
        return true;  
    }  
  
    @Override  
    public Object run() {  
        RequestContext ctx = RequestContext.getCurrentContext();  
  
        log.info("进入异常过滤器");  
  
        System.out.println(ctx.getResponseBody());  
  
        ctx.setResponseBody("出现异常");  
        
        String s = ExceptionUtils.getStackTrace( ctx.getThrowable());
        log.error("`````````````````````````````````````````````````````````````"+s);
        log.error("`````````````````````````````````````````````````````````````");
        return null;  
  
    }  

/**
 * Route {@link ZuulFilter} that sends requests to predetermined URLs via apache {@link HttpClient}.
 * URLs are found in {@link RequestContext#getRouteHost()}.
 *
 * @author Spencer Gibb
 * @author Dave Syer
 * @author Bilal Alp
 */
public class SimpleHostRoutingFilter extends ZuulFilter {

    private static final Log log = LogFactory.getLog(SimpleHostRoutingFilter.class);

    private static final DynamicIntProperty SOCKET_TIMEOUT = DynamicPropertyFactory
            .getInstance()
            .getIntProperty(ZuulConstants.ZUUL_HOST_SOCKET_TIMEOUT_MILLIS, 10000);

    private static final DynamicIntProperty CONNECTION_TIMEOUT = DynamicPropertyFactory
            .getInstance()
            .getIntProperty(ZuulConstants.ZUUL_HOST_CONNECT_TIMEOUT_MILLIS, 2000);

    private final Timer connectionManagerTimer = new Timer(
            "SimpleHostRoutingFilter.connectionManagerTimer", true);

    private boolean sslHostnameValidationEnabled;
    private boolean forceOriginalQueryStringEncoding;

    private ProxyRequestHelper helper;
    private Host hostProperties;
    private PoolingHttpClientConnectionManager connectionManager;
    private CloseableHttpClient httpClient;

转载于:https://my.oschina.net/xiaominmin/blog/1787863

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值