SpringCloud 服务网关 Zuul 自定义路由和排除路由配置

前言

首先需要说明的是该文是 【带你入门SpringCloud 之 服务网关 Zuul 】的拓展篇,如果还未阅读 【带你入门SpringCloud 之 服务网关 Zuul 】请先阅读完毕后在阅读该文。上文中已经介绍了如何搭建 Zuul 的最简环境,这篇主要介绍内容自定义路由和排除路由配置操作。

阅读本文需要你熟悉 SpringBoot 项目的基本使用即可,还有一点需要注意的是在操作过程中尽量和我本地环境一致,因为环境不一致可能会带来一些问题。我本地环境如下:

  • SpringBoot Version: 2.1.0.RELEASE
  • SpringCloud Version: Greenwich.RELEASE
  • Apache Maven Version: 3.6.0
  • Java Version: 1.8.0_144
  • IDEA: Spring Tools Suite (STS)

接下来开始具体操作配置介绍!

自定义和排除路配置实操

自定义路由配置

在实际开发中,我们可能更希望统一路由的访问路径,对于客户端调用方感觉就像在低啊用一个服务而不是不同的服务。实现这个功能就需要我们自定义路由,在上文中访问用户服务,和通过网关访问用户服务的地址如下:

用户服务的接口访问地址:http://localhost:8763/userService/user/
通过网关服务访问用户服务的地址:http://localhost:8060/user/userService/user/

其中标红的地方可以通过配置重新定义路由的名称,在配置文件中添加如下配置:

zuul.routes.zqmyUser.path=/zqmyUser/**
zuul.routes.zqmyUser.service-id=user

添加自定义路由配置后网关服务访问用户服务的地址:

http://localhost:8060/zqmyUser/userService/user/

需要注意的是影响配置的是 zuul.routes.zqmyUser.path后配置的 value: /zqmyUser/** 如果该值是 /abcUser/** 那么访问用户服务的的路由地址是:http://localhost:8060/abcUser/userService/user/,与routes后面的名称没有任何关系。

如果你使用的yml 配置文件具体配置如下:

zuul
	routes:
		zqmyUser
			path: /zqmyUser/**
			serviceId: user

也可以通过如下简写的方式进行配置:

zuul
	routes:
		user:  /zqmyUser/**

排除路由配置

如果我们不想把获取所有用户服务暴露出去,需要进行如下配置:

zuul.ignored-patterns=/user/userService/user/,/zqmyUser/userService/user/

代码示例

如果你按照上述方式搭建并未成功,可以参考我在GitHub 项目 spring-cloud-get-started 仓库中模块名为:

  • spring-cloud-zuul-eureka-service
  • spring-cloud-zuul-service
  • spring-cloud-zuul-user-service

进行对比查看是否配置有误。

spring-cloud-get-started 项目地址:https://github.com/zhuoqianmingyue/spring-cloud-get-started

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值