SpringCloudAlibaba整合服务网关GateWay教程
Gateway属于Springcloud自研的第二代微服务网关框架,Zuul属于netfix公司开源的产品,属于第一代微服务网关;
1 引入依赖
<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-gateway -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
<version>2.2.0.RELEASE</version>
</dependency>2 配置文件
server:
port: 80
####服务网关名称
spring:
application:
name: springcloudalibaba-gateway
cloud:
gateway:
discovery:
locator:
####开启以服务id去注册中心上获取转发地址
enabled: true
###路由策略
routes:
##路由id
- id: producer
#### 基于lb负载均衡形式转发(通过注册中心服务名称,获取真实访问地址)
uri: lb://springcloudalibaba-producer
filters:
- StripPrefix=1
###匹配规则
predicates:
- Path=/producer/**
nacos:
discovery:
server-addr: nacosIp地址:8848
### 127.0.0.1/producer/*** 转发到http://127.0.0.1:8080/***3 访问测试
此时访问127.0.0.1/producer/getPort 则转发到springcloudalibaba-producer服务:127.0.0.1:8080/producer/getPort
4 案例:自定义TokenFilter实现参数拦截
@Component
public class TokenFilter implements GlobalFilter {
@Override
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
String token = exchange.getRequest().getQueryParams().getFirst("token");
if(token==null||token.isEmpty()){
ServerHttpResponse response = exchange.getResponse();
response.setStatusCode(HttpStatus.BAD_GATEWAY);
String msg = "token not is null";
DataBuffer buffer = response.bufferFactory().wrap(msg.getBytes());
return response.writeWith(Mono.just(buffer));
}
return chain.filter(exchange);
}
}访问:127.0.0.1:8080/producer/getPort

访问:127.0.0.1:8080/producer/getPort ?token="111"

总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Java实现几十万条数据插入实例教程(30万条数据插入MySQL仅需13秒)
这篇文章主要给大家介绍了关于Java如何实现几十万条数据插入的相关资料,30万条数据插入MySQL仅需13秒,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2023-04-04
mybatis中一对一、一对多的<association> 配置使用
<association> 是 MyBatis 中处理一对一或一对多关系的映射元素,用于处理一对一和一对多关系的映射,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2025-05-05
如何解决Project SDK is not defined问题
这篇文章主要介绍了如何解决Project SDK is not defined问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2023-09-09
解决@JsonInclude(JsonInclude.Include.NON_NULL)不起作用问题
这篇文章主要介绍了解决@JsonInclude(JsonInclude.Include.NON_NULL)不起作用问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-06-06


最新评论