gwt 网站开发,企业大全,虚拟机网站建设与管理,网站制作源码版权Spring Cloud Gateway介绍及入门配置
概述#xff1a;
Gateway是在Spring生态系统之上构建的API网关服务#xff0c;基于Spring6#xff0c;Spring Boot 3和Project Reactor等技术。它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式#xff0c;并为它们提供…Spring Cloud Gateway介绍及入门配置
概述
Gateway是在Spring生态系统之上构建的API网关服务基于Spring6Spring Boot 3和Project Reactor等技术。它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式并为它们提供跨领域的关注点例如安全性、监控/度量和恢复能力。
Spring Cloud Gateway组件的核心是一系列的过滤器通过这些过滤器可以将客户端发送的请求转发(路由)到对应的微服务。 Spring Cloud Gateway是加在整个微服务最前沿的防火墙和代理器隐藏微服务结点IP端口信息从而加强安全保护。Spring Cloud Gateway本身也是一个微服务需要注册进服务注册中心。
作用
反向代理鉴权流量控制熔断日志监控
三大核心
路由router路由是构建网关的基本模块它由ID目标URI一系列的断言和过滤器组成如果断言为true则匹配该路由断言predicate开发人员可以匹配HTTP请求中的所有内容(例如请求头或请求参数)过滤器filter指的是Spring框架中GatewayFilter的实例使用过滤器可以在请求被路由前或者之后对请求进行修改。
web前端请求通过一些匹配条件定位到真正的服务节点。并在这个转发过程的前后进行一些精细化控制。
predicate就是我们的匹配条件
filter就可以理解为一个无所不能的拦截器。有了这两个元素再加上目标uri就可以实现一个具体的路由了
核心逻辑是路由转发断言判断执行过滤器链
入门配置
由于gateway 也是一个微服务也需要注册到服务注册中心 所以需要新创建一个moudle并在启动类开启服务注册与发现
maven依赖
propertiesmaven.compiler.source17/maven.compiler.sourcemaven.compiler.target17/maven.compiler.targetproject.build.sourceEncodingUTF-8/project.build.sourceEncoding/propertiesdependencies!--gateway--dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-gateway/artifactId/dependency!--服务注册发现consul discovery,网关也要注册进服务注册中心统一管控--dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-consul-discovery/artifactId/dependency!-- 指标监控健康检查的actuator,网关是响应式编程删除掉spring-boot-starter-web dependency--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-actuator/artifactId/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/build
/projectapplication.yaml
server:port: 9527spring:application:name: cloud-gateway #以微服务注册进consul或nacos服务列表内cloud:consul: #配置consul地址host: localhostport: 8500discovery:prefer-ip-address: trueservice-name: ${spring.application.name}gateway:routes:- id: pay_routh1 #pay_routh1 #路由的ID(类似mysql主键ID)没有固定规则但要求唯一建议配合服务名#格式lb://服务名 代表启用负载均衡得微服务 可以动态映射uriuri: lb://cloud-payment-service #动态匹配后提供服务的路由地址predicates:- Path/pay/gateway/get/** # 断言路径相匹配的进行路由- id: pay_routh2 #pay_routh2 #路由的ID(类似mysql主键ID)没有固定规则但要求唯一建议配合服务名uri: lb://cloud-payment-service #匹配后提供服务的路由地址predicates:- Path/pay/gateway/info/** # 断言路径相匹配的进行路由