微服务SpringCloud—Zuul的路由端点

zuul的路由端点

当@EnableZuulProxy与Spring Boot Actuator配合使用时,Zuul会暴露一个路由管理
端点/routes。借助这个端点,可以方便、直观地查看以及管理Zuul的路由。

/routes端点的使用非常简单。使用GET方法访问该端点,即可返回Zuul当前映射的
路由列表;使用POST方法访问该端点就会强制刷新Zuul当前映射的路由列表(尽管
路由会自动刷新,SpringCloud依然提供了强制立即刷新的方式)。

由于spring-cloud-starter-netflix-zuul已经包含了spring-boot-starter-actuator
写的microservice-gateway-zuul已经具备路由管理的能力。
下面来做一下测试

1.启动项目microservice-discovery-eureka。
2.启动项目microservice-provider-user。
3.启动项目microservice-consumer-movie。
4.启动项目microservice-gateway-zuul。
5.使用浏览器访问http:8040/actuator/routes,可获得如下结果。
在这里插入图片描述

注意点:官网查看暴露端启2.0动所有暴露端点

#开启所有暴露端点
management:
    endpoints:
        web:
            exposure:
                include: "*"

注意在使用Http访问端点时,需要加上默认/actuator 前缀

路由配置详解

1.自定义指定微服务的访问路径
配置zuul.routes.指定微服务的serviceId = 指定路径 即可。

zuul:
    routes:
        users: /user/**

这样users微服务就会被映射到user/**路径

2.忽略指定微服务
忽略服务很简单,可以使用zuul。ignored-services配置需要忽略的服务,多个用逗号分隔。

zuul:
    ignored-services: users,movie

3.忽略所有微服务,只路由指定微服务。

zuul:
    ignored-services: '*'    #使用'*'可忽略所有为服务
    routes:
       users: /users/**

4.同时制定微服务的serviceId和对应的路径

zuul:
    routes:
       user-route:             #该配置方式中,user-route只是给路有一个名称,可以任意起名。
           service-id: users
            path: /users/**      #service-id对应的路径

5.同时指定path和URL,例如:

zuul:
    routes:
        user-route:         #该配置方式中,user-route只是给路有一个名称,可以任意起名。
            url: http://localhost:8000/  #指定的url
           path: /user/*                 #url对应的路径
 这样就可以将/users/**映射到http://localhost:8000/#.

需要注意的是,使用这种方式的路又不会作为HystrixCommand执行,同时也不能使用Ribbon来负载均衡多个URL,例6可解决该问题。
6.同时指定path和URL,并且不破坏Zuul的Hystrix、Ribbon特性。

zuul:
    routes:
        user-route:
            path: /users/**   
                  service-id: users
 ribbon:
    eureka:
        enable: false     #为Ribbon禁用Eureka
users:
    ribbon:
        listOfServers: localhost:8000,localhost:8001
#这样既可以指定path与URL,又不破坏Zuul的Hystrix与Ribbon特性了。

7.使用正则表达式指定Zuul的路由匹配规则
借助RatternSericeRouteMapper,实现从微服务到映射路由的正则配置。例如:

在这里插入图片描述
8.路由前缀
示例1:

	zuul:
		prefix: /api
		strip-prefix: false
		routes:
			users: /users/**

这样,访问Zuul的/api/users/1路径,
请求将会被转发到microservice-provider-user的/api/1

示例2:
	zuul:
		routes:
			users:
				path:
				strip-prefix: false

9.忽略某些路径
想让Zuul代理某个微服务,同时又想保护改为服务的某些敏感路径。
此时,可使用ignored-Patterns,指定忽略的正则。例如:

zuul:
    ignored-patterns: /**/admin/**  #忽略所有包含/admin/的路径
    routes:
        users: users/**            

这样就可以将users微服务映射到/user/**路径,但会忽略微服务中所包含的/admin/的路径。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值