问题1:
如果对前缀没有任何配置,则zuul会自动添加一个/zuul
,这个配置写在这里:
所以这种情况下,/zuul/service-id/xxx
才会被映射到/service-id/xxx
问题2:
如果你的配置也长上图这个样子,那你跟我一样也是小🐖。注意缩进,这项配置是zuul.prefix。写成上面这样,这个/api
会被识别为某个实例ID为prefix的目标。
写了prefix应该是会覆盖掉前面的servlet-path,我没深挖到具体证据,但是从结果来看是这样的,这种配置下用zuul
当前缀访问不到。
问题3:
可能在别的地方也搜到过了,如果以上两个不能解决你的问题,也许你需要去看看:
- 该加的注解加了没有,启动类的
@EnableZuulProxy (或者是clint)
- 映射是不是正确的,实例ID对不对,有没有拼写错误
- 服务是不是部署好了并且注册到服务中心了,如果直接访问你的目标而不经过Zuul,是不是能访问到,
我先犯问题3,再犯问题1,最后被问题2困扰了半个小时,我是🐖。