1.通过yml配置:
server:
port: 9527
spring:
application:
name: jym-cloud-gateway
cloud:
gateway:
discovery:
locator:
enabled: true #开启动态创建路由的功能,利用微服务名进行路由
routes:
- id: payment_jym01 #唯一标识
uri: lb://jym-provider-payment #转发的地址,写服务名称
predicates: Path=/payment/findOne
2.通过java代码配置:
@Configuration
public class GatewayConfig {
@Bean
public RouteLocator customRouteLocator(RouteLocatorBuilder routeLocatorBuilder) {
RouteLocatorBuilder.Builder routes = routeLocatorBuilder.routes();
routes.route("jym_routh",
r ->r.path("/guonei")
.uri("http://news.baidu.com/guonei")).build();
return routes.build();
}
}
添加Filter:
实现GlobalFilter, Ordered接口
@Component
@Slf4j
public class MyLogGatewayFilter implements GlobalFilter, Ordered {
@Override
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
log.info("***********全局过滤器***********"+new Date());
String uname = exchange.getRequest().getQueryParams().getFirst("uname");
if (uname == null){
log.info("******用户名为null,非法用户*****");
exchange.getResponse().setStatusCode(HttpStatus.NOT_ACCEPTABLE);
return exchange.getResponse().setComplete();
}
return chain.filter(exchange);
}
@Override
public int getOrder() {
return 0;
}
}
学习年限不足,知识过浅,说的不对请见谅。
世界上有10种人,一种是懂二进制的,一种是不懂二进制的。