当前位置:   article > 正文

Gateway配置路由的两种方式_gateway路由配置

gateway路由配置

方式一:使用yml配置

# 网关配置
cloud:
    gateway:
      routes:
        - id: payment_routh #payment_route    #路由的ID,没有固定规则但要求唯一,建议配合服务名
          uri: http://localhost:8001          #匹配后提供服务的路由地址
          #uri: lb://cloud-payment-service #匹配后提供服务的路由地址
          predicates:
            - Path=/payment/get/**         # 断言,路径相匹配的进行路由

        - id: payment_routh2 #payment_route    #路由的ID,没有固定规则但要求唯一,建议配合服务名
          uri: http://localhost:8001          #匹配后提供服务的路由地址
          #uri: lb://cloud-payment-service #匹配后提供服务的路由地址
          predicates:
            - Path=/payment/lb/**         # 断言,路径相匹配的进行路由
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

通过http://localhost:9527访问到http://localhost:8001,再通过predicates断言来判断8001下是否有payment/get/**接口地址,若有,则predicates为true,则访问成功 ,若为false,则访问失败。因此不再暴露真实端口8001,统一换成网关9527。
注意:上述id名称可以随意起,但是不能重复。

第二个路由规则:说明通过9527网关找的是8001服务。
在这里插入图片描述

方式二:使用java配置

package com.atguigu.springcloud.config;

import org.springframework.cloud.gateway.route.RouteLocator;
import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @author LiFang
 * @version 1.0
 * @since 2021/12/30 21:02
 * 使用java配置路由
 */

@Configuration
public class GateWayConfig {
    /**
     * @param routeLocatorBuilder
     * @return org.springframework.cloud.gateway.route.RouteLocator
     * @description 配置了一个id为route_name的路由规则,
     * 当访问地址为http://localhost:9527/guonei时会自动转发到地址:http://news.baidu.com/guonei
     * @author LiFang
     * @date 2021/12/30 21:27
     */
    @Bean
    public RouteLocator customRouteLocator(RouteLocatorBuilder routeLocatorBuilder) {
        RouteLocatorBuilder.Builder routes = routeLocatorBuilder.routes();
        routes.route("path_route_atguigu",
                r -> r.path("/guonei")
                        .uri("http://news.baidu.com/guonei")).build();
        return routes.build();
    }
    
    @Bean
    public RouteLocator customRouteLocator2(RouteLocatorBuilder builder) {
        RouteLocatorBuilder.Builder routes = builder.routes();
        routes.route("path_route_atguigu2", 
        		r -> r.path("/guoji")
        				.uri("http://news.baidu.com/guoji")).build();
        return routes.build();
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42

上述代码第一个方法为 配置一个id为route_name的路由规则:当我们访问http://localhost:9527/guonei时会自动转发到http://news.baidu.com/guonei。
同理,第二个方法为 配置一个转发到“百度国际新闻”的路由规则。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/317407
推荐阅读
相关标签
  

闽ICP备14008679号