美文网首页
zuul 初学习(9.20)

zuul 初学习(9.20)

作者: 星期六1111 | 来源:发表于2017-09-21 09:30 被阅读46次

    问题描述

    今天开始学习项目中的一个新的知识点zuul,网上找了些教程看了下就开始自己学习写demo。

    矛盾点

    按照网上的博客和demo一步一步的写,但最后博客中的描述是访问localhost:8080/book/checkout 可以出结果的,但我的却不行,访问URL的结果是访问不到网页。

    问题解决

    Q1:服务已经启动,为什么会访问不到?
    A1:百思不得其解,忽然发现网页的Tab上的图案有些熟悉,原来是在印度的项目,记得当时是通过localhost:8080访问的,会是这个原因吗?我将zuul 的demo端口换成了5000,访问localhost:5000/book/checkout,好了,可以访问到服务了,但是页面的结果却不是我期望的。


    Q2:如果我杀掉8080端口的服务,那应该就关闭我在印度的项目服务了吧?
    A2:杀掉localhost:8080后,浏览器输入localhost:8080,发现服务竟然还在,因为页面是有响应的,尽管状态是404。。。。这是什么情况,为毛?


    Q3:杀掉进程,但localhost访问的时候确实有响应的,为什么?
    A3:初步怀疑是可浏览器缓存的原因,清除浏览器缓存,ok


    Q4:zuul把端口由8000换成5000后,访问local:5000/book/checkout,并没有进行路由替换,这是为什么?
    A4:仔细检查发现,后端可以访问的路由是http://localhost:8090/availablehttp://localhost:8090/checked-out,使用zuul后,我访问的路由是http://localhost:5000/books/checkout,页面提示的错误是Whitelabel Error Page.

    • 尝试之后发现如果zuul的配置文件是这样的
    server.port=5000
    zuul.routes.book.path=/books/**
    zuul.routes.book.url=http://localhost:8090/
    

    访问路由http://localhost:5000/books/checked-outhttp://localhost:5000/books/available后可以成功访问,ok.

    • 如果我把路由写成这样
    server.port=5000
    zuul.routes.book.path=/books/**
    zuul.routes.book.url=http://localhost:8090/checked-out
    

    访问路由就会报错


    Q5: Q4的问题原因是什么?
    A5: 在Q4中成功的情况下,当使用zuul的时候,访问localhost:5000/books/checkout,zuul的路由替换会在浏览器中变成localhost:8090/checkout,自然是访问不到的,同理其他。

    反思

    今天在这个问题上花费了几个小时的时间,中途问了一些小伙伴,但还是没有解决问题,就一直卡在这个问题上,服务启动,但浏览器接受不到响应的问题,没有及时的发现网页上的小图标有问题,所以耽搁了很多时间。还有,博客上的就一定是对的吗?它的demo是不是本身就存在问题?

    action

    1. 一个问题被卡住超过一个小时,暂时放弃,找到可以帮助自己的人再来解决这个问题。
    2. 找不同的demo对比来看,去官网看文档。

    相关文章

      网友评论

          本文标题:zuul 初学习(9.20)

          本文链接:https://www.haomeiwen.com/subject/nyiasxtx.html