赞
踩
# 网关配置
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/** # 断言,路径相匹配的进行路由
通过http://localhost:9527访问到http://localhost:8001,再通过predicates断言来判断8001下是否有payment/get/**接口地址,若有,则predicates为true,则访问成功 ,若为false,则访问失败。因此不再暴露真实端口8001,统一换成网关9527。
注意:上述id名称可以随意起,但是不能重复。
第二个路由规则:说明通过9527网关找的是8001服务。
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();
}
}
上述代码第一个方法为 配置一个id为route_name的路由规则:当我们访问http://localhost:9527/guonei时会自动转发到http://news.baidu.com/guonei。
同理,第二个方法为 配置一个转发到“百度国际新闻”的路由规则。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。