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();
    }
    }
     
  • 相关阅读:
    Sicily shortest path in unweighted graph
    Sicily connect components in undirected graph
    Sicily 1931. 卡片游戏
    Sicily 1021. Couples
    c++ 高效文本读写
    Sicily 1129. ISBN
    Sicily 1133. SPAM
    Sicily 1282. Computer Game
    小工具?不,这是小工具的集合!
    .Net Core建站(4):FTP发布项目及连接服务器数据库
  • 原文地址:https://www.cnblogs.com/fsqsec/p/8342188.html
Copyright © 2011-2022 走看看