(33)java Spring Cloud+Spring boot+mybatis企业快速开发架构之SpringCloud-Zuul路由配置详解

发布时间:2022-07-05 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了(33)java Spring Cloud+Spring boot+mybatis企业快速开发架构之SpringCloud-Zuul路由配置详解脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

在教程《Zuul网关介绍和使用》中,我们学习了如何结合 Eureka 来实现动态的路由转发。当 Zuul 集成 Eureka 之后,其实就可以为 Eureka 中所有的服务进行路由操作了,默认的转发规则就是“API 网关地址+访问的服务名称+接口 URI”。推荐分布式架构

在给服务指定名称的时候,应尽量短一点,这样的话我们就可以用默认的路由规则进行请求,不需要为每个服务都定一个路由规则,这样就算新增了服务,API 网关也不用修改和重启了。

默认规则举例:

API 网关地址:。用户服务名称:user-service。用户登录接口:/user/login。那么通过 Zuul 访问登录接口的规则就是 :2103/user-service/user/LOGin

指定具体服务路由我们可以为每一个服务都配置一个路由转发规则:

1
zuul.routes.fsh-house.path=/api-house/**

(33)java Spring Cloud+Spring boot+mybatis企业快速开发架构之SpringCloud-Zuul路由配置详解

上述代码将 fsh-house 服务的路由地址配置成了 api-house,也就是当需要访问 fsh-house 中的接口时,我们可以通过 api-house/house/hello 来进行。这其实就是将服务名称变成了我们自定义的名称。

有的时候服务名称太长了,放在 URL 中不太友好,我们希望它变得更友好一点,就可以这么去配置。这里的 api-house/** 后面一定要配置两个星号,两个星号表示可以转发任意层级的 URL,比如“/api-house/house/1”。如果只配置一个星号,那么就只能转发一级,比如“/api-house/house”。

路由前缀有的时候我们会想在 API 前面配置一个统一的前缀,比如像 这样登录接口,如果想将其变成 ,即在每个接口前面加一个 rest,此时我们就可以通过 Zuul 中的配置来实现:

1
zuul.PRefix=/rest

本地跳转Zuul 的 API 路由还提供了本地跳转功能,通过 forward 就可以实现。

@H_777_63@
1
2
zuul.routes.fsh-substITution.path=/api/**
zuul.routes.fsh-substitution.url=forward:/local

 

 

当我们想在访问 api/1 的时候会路由到本地的 local/1 上去,就可以参照上述代码实现。local 是本地接口需要我们自行添加,因此我们要建一个 Controller,代码如下所示。

1
2
3
4
5
6
7
@RestController
public class LocalController {
    @GetMapping("/local/{id}")
    public String local(@PathVARiable String id) {
        return id;
    }
}

然后访问 /api/1 就可以看到我们想要的返回结果了,如图 1 所示。

(33)java Spring Cloud+Spring boot+mybatis企业快速开发架构之SpringCloud-Zuul路由配置详解

脚本宝典总结

以上是脚本宝典为你收集整理的(33)java Spring Cloud+Spring boot+mybatis企业快速开发架构之SpringCloud-Zuul路由配置详解全部内容,希望文章能够帮你解决(33)java Spring Cloud+Spring boot+mybatis企业快速开发架构之SpringCloud-Zuul路由配置详解所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。