7-SpringCloud-服务网关 Gateway-高级特性 Route

1.6.2.4 Gateway 高级特性之 Route 路由

在上述配置文件 application.yml 文件中的 URL 存在硬编码的问题,下面将以微服务名动态获取服务 URL。

具体配置操作如下所示。

  • 首先更具官网查看如何以 Route 服务名动态获取服务URL,具体信息请查看官方网址https://docs.spring.io/spring-cloud-gateway/reference/spring-cloud-gateway-server-webflux/global-filters.html

  • 修改网关服务9527的配置文件 application.yml 文件。具体配置信息如下所示。

    yml 复制代码
    server:
      port: 9527
    
    spring:
      application:
        name: cloud-gateway
      cloud:
        consul:
          host: localhost
          port: 8500
          discovery:
            prefer-ip-address: true
            service-name: ${spring.application.name}
        gateway:
          routes:
            - id: pay_routh1 #pay_routh1                #路由的ID(类似mysql主键ID),没有固定规则但要求唯一,建议配合服务名
    #          uri: http://localhost:8001                #匹配后提供服务的路由地址
              uri: lb://cloud-payment-service
              predicates:
                - Path=/pay/gateway/get/**              # 断言,路径相匹配的进行路由
    
    
            - id: pay_routh2 #pay_routh2                #路由的ID(类似mysql主键ID),没有固定规则但要求唯一,建议配合服务名
    #          uri: http://localhost:8001                #匹配后提供服务的路由地址
              uri: lb://cloud-payment-service
              predicates:
                - Path=/pay/gateway/info/**              # 断言,路径相匹配的进行路由
  • 测试,启动9527、8001、80服务和 Zipkin 工具,然后再浏览器输入网址http://localhost/feign/pay/gateway/get/1。如出现下图所示的信息,及设置成功。

    再次测试,将服务名8001的端口后修改为8007,重新启动服务8001再次测试网址http://localhost/feign/pay/gateway/get/1,如输出如下信息则表示测试成功。最后将端口号修改为8001。

Route 路由以微服务名修改服务动态 URL,修改成功。

上一篇 6-SpringCloud-服务网关 Gateway理论基础
下一篇 8-SpringCloud-服务网关 Gateway-高级特性Predicate

相关推荐
程序员良辰7 分钟前
【TongWeb7的M11】 首次登录密码修改 & 开启控制台远程访问
java·中间件·tomcat
吴声子夜歌8 分钟前
Java面试——设计模式(四)
java·设计模式·面试
paopaokaka_luck9 分钟前
基于springboot3+vue3+uniapp的剧本杀预约小程序(AI角色对话、协同过滤算法、地图Api、Echarts图形化分析)
java·前端·spring boot·学习·echarts
一嘴一个橘子11 分钟前
idea 的 双击Shift 全局搜索
java·ide·intellij-idea
nvvas11 分钟前
最新版 IntelliJ IDEA 全面介绍:面向现代 Java 开发者的智能 IDE
java·ide·intellij-idea
circuitsosk16 分钟前
Python 文件读写与上下文管理器:with 语句为什么是最佳选择
java·服务器·python·文件操作·上下文管理器·contextlib
无望__wsk18 分钟前
k8s控制器
java·docker·kubernetes
迪康coolmu22 分钟前
企业IT运维闭环——工单管理与远程协助一体化实践
java·大数据·运维·网络·数据库·人工智能·安全
荣码35 分钟前
Function Calling:比Agent更靠谱的工具调用,我踩了4个坑
java·python