今天在测试的过程中无意中发现以前一个老的项目使用的是zuul编写的gateway服务,结果把这个服务与其他微服务注册到同一个注册中心的时候,发现竟然可以通过这个网关请求其他的服务。
纳尼,明明其他的微服务我没有在zuul里面进行服务配置,为什么竟然可以调通呢?这个问题其实以前就发现了,zuul会自动注册同一个注册中心的所有服务。所以这篇文章我们介绍下如何查看zuul网关注册的所有服务。
一、maven添加依赖
<!-- spring actuator --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
二、在application.yml文件中配置如下配置:
management: endpoints: web: exposure: include: '*'
三、启动项目
启动项目后,访问这个地址: http://${ip}:${port}/actuator/routes,访问这个地址之后,我们就能看到左右的路由列表了。
json格式化之后,这里的json是:
{ "/api/school1/**": "http://127.0.0.1:9091", "/api/school/vod/**": "school-vod", "/api/school{*}/**": "school", "/api/school/**": "school", "/api/wisdom-school-gateway/**": "wisdom-school-gateway", "/api/minion/**": "minion", "/api/consumption-app/**": "consumption-app", "/api/consumption-machine/**": "consumption-machine", "/api/consumption-web/**": "consumption-web" }
结果发现他会自动根据serviceid把我们想用的服务都注册上。所以这里要注意一下,为了安全考虑我们需要排除下不想通过此gateway访问的服务,排除办法是在application.yml文件中配置如下配置:
#这里可以配置多个服务,多个服务id使用英文逗号分割 zuul.ignored-services=consumption-app
配置后再启动项目,可以发现我们想去掉的服务已经没有在路由列表中了。
还没有评论,来说两句吧...