同学你好:
这里的5个问题,除了第四个之外,你的回复都是正确的,这里,我解释下网关根据 URL 实现转发的过程。
Spring Cloud Zuul 中的过滤器包含以下 4 个类型:分别为 pre(请求被路由前调用)、routing(在路由请求时被调用)、post(在 routing 和 error 过滤器之后被调用) 和 error(发生错误时被调用)。可以参考我在 PPT 中给出的那张图。
外部 HTTP 请求到达网关直到返回请求结果的整个生命周期:
请求到达网关时首先被 pre 类型的过滤器处理,主要目的是在请求路由前做一些请求校验等前置加工。
完成 pre 阶段后进入 routing 请求转发阶段,将外部请求转发到具体服务实例。
routing 之后进入 post,此阶段过滤器不仅可以获取请求信息,还能获得服务实例返回的信息,做一些加工处理。
error 在上述三个阶段发生异常时出发,最后还是流向 post 类型的过滤器。
欢迎来 QQ 群随时交流、讨论,也非常感谢同学的支持!