Gateway 是 Spring Cloud 新推出的网关框架,该项目基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等技术,底层使用了高性能的通信框架Netty。
网关的作用:在没有API网关作为统一出口的情况下,需要调用方自己组合各种服务,而且容易让调用方感知后端各种服务的存在,加入网关后,客户端调用服务需要通过网关来进行,并且网关可以处理路由,安全,限流,缓存,日志,监控,重试,熔断等事务,使业务开发更纯净。
网关的作用:在没有API网关作为统一出口的情况下,需要调用方自己组合各种服务,而且容易让调用方感知后端各种服务的存在,加入网关后,客户端调用服务需要通过网关来进行,并且网关可以处理路由,安全,限流,缓存,日志,监控,重试,熔断等事务,使业务开发更纯净。
一些概念:
Route(路由):这是网关的基本构建块。它由一个 ID,一个目标 URI,一组断言和一组过滤器定义。如果断言为真,则路由匹配。
Predicate(断言):这是一个 Java 8 的 Predicate。我们可以使用它来匹配来自 HTTP 请求的任何内容。
Filter(过滤器):这是org.springframework.cloud.gateway.filter.GatewayFilter的实例,我们可以使用它修改请求和响应。
使用:
1.导入依赖:
<!–gateway–>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
注:sprint-boot-starter-web这个依赖是不能引入,否则getway不能使用。
2.启动类:
@SpringBootApplication
@EnableEurekaClient
public class GetwayMain {
public static void main(String[] args) {
SpringApplication.run(GetwayMain.class,args);
}
}
3.配置路由,getway当中配置路由有两种方式,第一种是通过yml配置文件的方式配置路由,第二种是通过配置类的方式来配置路由
使用yml:
spring:
application:
name: cloud-getway
cloud:
gateway:
discovery:
locator:
enabled: true
routes:
– id: payment_routh #id
#uri: http://localhost:8001 #匹配的路由地址
uri: lb://cloud-payment-service
predicates:
– Path=/payment/get/** #断言路径匹配进行路由
– id: payment_routh
#uri: http://localhost:8001
uri: lb://cloud-payment-service
predicates:
– Path=/payment/lb/**
使用配置类:
@Configuration
public class GetwayConfig {
@Bean
public RouteLocator customRouteLocator(RouteLocatorBuilder routeLocatorBuilder){
RouteLocatorBuilder.Builder routes = routeLocatorBuilder.routes();
routes.route(“com.74120”,r->r.path(“/guonei”).uri(“http://news.baidu.com/guonei”)).build();
return routes.build();
}
}
Route(路由):这是网关的基本构建块。它由一个 ID,一个目标 URI,一组断言和一组过滤器定义。如果断言为真,则路由匹配。
Predicate(断言):这是一个 Java 8 的 Predicate。我们可以使用它来匹配来自 HTTP 请求的任何内容。
Filter(过滤器):这是org.springframework.cloud.gateway.filter.GatewayFilter的实例,我们可以使用它修改请求和响应。
使用:
1.导入依赖:
<!–gateway–>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
注:sprint-boot-starter-web这个依赖是不能引入,否则getway不能使用。
2.启动类:
@SpringBootApplication
@EnableEurekaClient
public class GetwayMain {
public static void main(String[] args) {
SpringApplication.run(GetwayMain.class,args);
}
}
3.配置路由,getway当中配置路由有两种方式,第一种是通过yml配置文件的方式配置路由,第二种是通过配置类的方式来配置路由
使用yml:
spring:
application:
name: cloud-getway
cloud:
gateway:
discovery:
locator:
enabled: true
routes:
– id: payment_routh #id
#uri: http://localhost:8001 #匹配的路由地址
uri: lb://cloud-payment-service
predicates:
– Path=/payment/get/** #断言路径匹配进行路由
– id: payment_routh
#uri: http://localhost:8001
uri: lb://cloud-payment-service
predicates:
– Path=/payment/lb/**
使用配置类:
@Configuration
public class GetwayConfig {
@Bean
public RouteLocator customRouteLocator(RouteLocatorBuilder routeLocatorBuilder){
RouteLocatorBuilder.Builder routes = routeLocatorBuilder.routes();
routes.route(“com.74120”,r->r.path(“/guonei”).uri(“http://news.baidu.com/guonei”)).build();
return routes.build();
}
}
今天的文章get sway_gateway方法分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/52473.html