对于不知道zuul网关的原理的同学,第一步不知道怎么看,接下来我们就来嘻嘻搞一搞。在看这个之前需要 了解 spring mvc的原理。
第一步
环境的搭建 不做讲解了 自己搞
第二步
在路由配置上配置一个没有的服务
就想图片中xxx服务
第三步
通过网关请求这个路由,是不是报错了
如图所示在图中这个报错的地方大个断点,重新请求这个地方,跟踪其线程栈,你会发现
这个是springmvc的东西然后我们去这个地方打断点。知道他是 ZuulHandlerMapping(mvcHandlerMapping的实现类)这里面呢包装的是 ZuulController 的处理类。然后找 ZuulHandlerMapping 这个bean在哪里创建的。找到最后找到 ZuulServerAutoConfiguration 这个配置类。接下来就简单了 随着这两个点往下理。下面就是 我理的流程图。
总结:
zunl网关在设计中,先把mvc的请求全部拦截, 再处理。处理分为了 三步 ,第一步 ,根据请求Request 的 url 去得到要调用的服务名,把他设置在线程变量中,第二步,套用Ribbon 的远程调用,并把返回值结果保存在 线程变量中,第三步,把结果写回前端。