java系统找不到指定文件怎么解决
341
2022-09-14
【云原生&微服务>SCG网关篇三】Spring Cloud Gateway是什么、详细使用案例
文章目录
一、前言二、Spring Cloud Gateway
核心概念
三、Gateway使用案例
0、最上层父项目spring-cloud-alibaba-center
1)pom.xml
1、普通服务simple-service
1、pom.xml2、application.yml3、启动类SimpleServiceApplication4、HelloController5、启动simple-service
2、搭建Gateway
1、pom.xml2、application.yml3、启动类GatewayApplication4、启动gateway-center
3、路由效果验证
四、总结
一、前言
至此微服务网关系列文章已出:
【云原生&微服务>SCG网关篇一】为什么要有网关、生产环境如何选择网关云原生&微服务>SCG网关篇二】生产上那些灰度发布方式
聊了以下问题:
为什么要有网关?网关的作用是什么?网关的分类?网关的技术选型?使用网关时常用的灰度发布方式有哪些?
本文接着聊SpringCloud生态中的SpringCloudGateway是什么?并给出详细使用案例?
二、Spring Cloud Gateway
官方文档:Cloud Gateway 是Spring Cloud的第二代网关,用于替换Zuul;基于Netty、Reactor以及WebFlux构建。
1> 优点:
性能强劲:Gateway基于netty和reactive模型构建,所以它的性能是Zuul的1.6倍左右。功能强大:内置了很多实用功能,比如转发、监控、限流等。
注册到Nacos,自动检测nacos上其他的服务集成Ribbon(SCG老版本)、集成SCB–spring cloud loadbalancer(SCG2020版本开始)实现请求负载限流/容错(默认Hystrix,也可以用Sentinel)
设计优雅、易扩展
2> 缺点:
依赖Netty与WebFlux,不是Servlet编程模型,有一定的学习、适应成本。不能在Servlet容器下工作,只能打成jar包,不能构建成war包。不支持Spring Boot 1.X。
核心概念
路由(Route):路由是⽹关最基础的部分,路由信息由⼀个ID、⼀个目标URL、⼀组断⾔Predicate和⼀组Filter组成。如果断⾔路由为真,则说明请求的URL和配置匹配;也可以吧路由理解为一条请求转发规则。
ID:编号,路由的唯⼀标识;URI:路由指向的⽬标 URI,即请求最终被转发的⽬的地。Predicate:断言 / 谓语,作为路由的匹配条件。Filter:过滤器,对请求和响应进⾏拦截,实现⾃定义的功能。
断⾔/谓词(Predicate):Spring Cloud Gateway使用Predicate作为路由的匹配条件;Gateway 内置了多种 Predicate 的实现,提供了多种请求的匹配条件,⽐如说基于请求的 Path、Method 等等。
即java.util.function.Predicate
过滤器(Filter):过滤器Filter会对请求和响应进行拦截处理,实现自定义的功能;Gateway 内置了多种 Filter 的实现,提供了多种请求的处理逻辑,⽐如说限流、熔断等等。
此外,Spring Cloud Gateway启动时基于Netty Server 监听一个指定的端口(可以通过server.port属性自定义),Client的请求都会先打到Netty Server,然后再走到Predicates、Filters,最后走一层Netty proxy将请求转发到指定的微服务。
三、Gateway使用案例
整体项目目录包括两个Module,分别为:gateway-center、simple-service。
其中gateway-center作为路由网关、simple-service作为一个普通的微服务被整合到Gateway中。
0、最上层父项目spring-cloud-alibaba-center
spring-cloud-alibaba-center项目下只保留一个跟pom,用于做整体项目的maven依赖管理
1)pom.xml
5、启动simple-service
启动成功后,控制台输出如下:
2、搭建Gateway
Gateway-center整体代码结构目录如下:
其中包含一个pom.xml文件、一个application.yml配置文件、一个启动类;
1、pom.xml
标签:API
发表评论
暂时没有评论,来抢沙发吧~