iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Spring Cloud Gateway编码实现任意地址跳转的示例
  • 592
分享到

Spring Cloud Gateway编码实现任意地址跳转的示例

2024-04-02 19:04:59 592人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录本篇概览一般路由规则特殊规则设计源码下载编码配置开发和启动后台服务,模拟生产和测试环境验证这里分类和汇总了欣宸的全部原创(含配套源码):https://GitHub.com/zq

这里分类和汇总了欣宸的全部原创(含配套源码):https://GitHub.com/zq2599/blog_demos

本篇概览

作为《spring cloud Gateway实战》系列的第十四篇,本文会继续发掘spring Cloud Gateway的潜力,通过编码体验操控网关的乐趣,开发出一个实用的功能:让Spring Cloud Gateway应用在收到请求后,可以按照业务的需要跳转到任意的地址去

一般路由规则

先来看一个普通的路由规则,如下所示,意思是将所有/hello @Data @ToString public static class BizLogicRouteConfig { // 生产环境的服务地址 private String prodEnvUri; // 测试环境的服务地址 private String testEnvUri; } }

在apply方法中,重新创建ServerHttpRequest和Route对象,它们的参数可以按照业务需求随意设置,然后再将这两个对象设置给SpringCloud gateway的处理链中,接下来,处理链上的其他过滤拿到的就是新的ServerHttpRequest和Route对象了

配置

假设生产环境地址是http://127.0.0.1:8082,测试环境地址是http://127.0.0.1:8087,整个SprinGCloud Gateway应用的配置文件如下,可见使用了刚刚创建的过滤器,并且为此过滤器配置了两个参数:


server:
  #服务端口
  port: 8086
spring:
  application:
    name: gateway-dynamic-route
  cloud:
    gateway:
      routes:
        - id: path_route
          uri: http://0.0.0.0:8082
          predicates:
          - Path=/hello
    @GetMapping("/str")
    public String helloStr() {
        return Constants.HELLO_PREFIX + ", " + dateStr() + " (from test enviroment)";
    }
}

以上两个服务,对应的代码都在我的github仓库中,如下图红框所示:

在这里插入图片描述

启动gateway-dynamic-route、provider-hello、provider-for-test-user服务

此时,SpringCloud gateway应用和两个后台服务都启动完成,情况如下图,接下来验证刚才开发的过滤器能不能像预期那样转发:

在这里插入图片描述 

验证

用postman工具向gateway-dynamic-route应用发起一次请求,返回值如下图红框所示,证明这是provider-hello的响应,看来咱们的请求已经正常到达:

在这里插入图片描述

再发送一次请求,如下图,这次在header中加入键值对,得到的结果是provider-for-test-user的响应

在这里插入图片描述

至此,过滤器的开发和验证已经完成,通过编码,可以把外部请求转发到任何咱们需要的地址去,并且支持参数配置,这个过滤器还有一定的可配置下,减少了硬编码的比率,如果您正在琢磨如何深度操控SpringCloud Gateway,希望本文能给您一些参考

到此这篇关于Spring Cloud Gateway编码实现任意地址跳转的示例的文章就介绍到这了,更多相关Spring Cloud Gateway 任意地址跳转内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Spring Cloud Gateway编码实现任意地址跳转的示例

本文链接: https://www.lsjlt.com/news/159730.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作