zoukankan      html  css  js  c++  java
  • springcloud zuul

    zuul是springcloud的API网关。

    入口也是springmvc的DispatcherServlet。

     实际的handler是ZuulController,通过handleRequest方法调用了ZuulServlet的service方法来处理请求。

    ZuulServlet就是一个普通的servlet,其service方法如下:

    @Override
    public void service(javax.servlet.ServletRequest servletRequest, javax.servlet.ServletResponse servletResponse) throws ServletException, IOException {
    try {
    init((HttpServletRequest) servletRequest, (HttpServletResponse) servletResponse);

    // Marks this request as having passed through the "Zuul engine", as opposed to servlets
    // explicitly bound in web.xml, for which requests will not have the same data attached
    RequestContext context = RequestContext.getCurrentContext();
    context.setZuulEngineRan();

    try {
    preRoute(); //pre ZuulFilter在这里调用

    } catch (ZuulException e) {
    error(e);
    postRoute();
    return;
    }
    try {
    route(); //这里做路由
    } catch (ZuulException e) {
    error(e);
    postRoute(); //post ZuulFilter在这里调用
                return;
    }
    try {
    postRoute(); //post ZuulFilter在这里调用

    } catch (ZuulException e) {
    error(e);
    return;
    }

    } catch (Throwable e) {
    error(new ZuulException(e, 500, "UNHANDLED_EXCEPTION_" + e.getClass().getName()));
    } finally {
    RequestContext.getCurrentContext().unset();
    }
    }
     
  • 相关阅读:
    购物英语词汇
    生活学习英语词汇
    银行英语词汇
    烹饪英语词汇
    旅游英语词汇
    饮食英语词汇
    书英语词汇
    王元编辑口语资料中国传统之节日
    DataSet在WCF中怎么办?
    Python生成Wav格式文件
  • 原文地址:https://www.cnblogs.com/fsqsec/p/8342188.html
Copyright © 2011-2022 走看看