Spring中的aware接口详情
311
2022-08-29
springboot整合gateway实现网关功能的示例代码
目录1.使用场景:2.代码实现1创建gateway-service服务2创建gateway-client服务3.实现效果
1.使用场景:
网关可提供请求路由与组合、协议转换、安全认证、服务鉴权、流量控制与日志监控等服务。可选的网关有不少,比如 Nginx、、Linkerd 、eureka、 Spring Cloud Gateway、consul等。
Spring Cloud Gateway 针对进来的请求做各种判断和处理,比如说判断请求的合法性、权限验证,请求地址改写,请求参数、头信息、cookie 信息的分析和改写,请求速率控制,日志留存等。而这些都可以方便的通过 Predicate 和 GatewayFilter 来组合实现。
2.代码实现
1创建gateway-service服务
引入依赖
yml配置
server:
port: 8001
springhttp://:
application:
name: gateway-service #服务名
profiles:
active: dev #环境设置
cloud:
gateway:
routes:
# 透传服务
- id: gateway-client #设置路由id(理论上是可以随便写的)
uri: lb://gateway-client #设置路由的url lb://nacos服务注册名称
predicates:
- Path=/client/** #路径匹配规则
filters:
- StripPrefix=1
- id: gateway-consumer
uri: lb://gateway-consumer
predicates:
- Path=/consumer/**
filters:
- StripPrefix=1
跨域配置
@Configuration
public class CorsConfig {
@Bean
public CorsWebFilter corsFilter() {
CorsConfiguration config = new CorsConfiguration();
config.addAllowedMethod("*");
config.addAllowedOrigin("*");
config.addAllowedHeader("*");
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(new PathPatternParser());
source.registerCorsConfiguration("/**", config);
return new CorsWebFilter(source);
}
}
2创建gateway-client服务
引入依赖
yml配置
server:
port: 8002
spring:
application:
name: gateway-client #服务名
profiles:
active: dev #环境设置
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848 #nacos服务注册
控制层请求
@RestController
public class TestController {
@RequestMapping("/index")
public String index(){
return "gateway-client";
}
}
启动类
@SpringBootApplication
@EnableDiscoveryClient
public class GatewayClientApplication {
public static void main(String[] args) {
SpringApplication.run(GatewayClientApplication.class, args);
}
}
3.实现效果
采用nacos作为注册中心,启动nacos后再启动gateway-service, gateway-client项目
在nacos发现服务注册成功
在浏览器发起请求
http://localhost:8001/client/index
实际上网关把请求发送到gateway-client服务,返回结果
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~