Gateway

问题

分布式项目多个服务对应着非常多的接口,服务器之间套接字难以管理
安全隐患很大,暴露的接口增加导致服务器受攻击的面积增加
多个服务之间请求资源可能存在跨域问题
多个服务需要多次认证

使用网关

  1. 解决了接口多难以管理,并且安全隐患大的问题(只用对接网关微服务)
  2. 解决了跨域问题
  3. 解决了多服务认证问题
  4. 日志统一管理
  5. 可以提供微服务限流的功能

主要作用还是整合复杂的微服务功能

网关路由配置

过滤器主要通过请求头、路径、请求体、请求状态等进行路由断言(根据路由规则分发)操作

03-08
### 网关 Gateway 技术介绍 网关(Gateway),特别是指 API 网关,在分布式服务架构、微服务架构中扮演着至关重要的角色[^1]。作为系统的入口,API 网关负责接收所有的客户端请求并将其转发给适当的服务实例。这不仅简化了前端应用与后端多个微服务之间的交互过程,还允许开发者集中处理跨域资源共享(CORS)、身份验证(Authentication)等问题。 对于采用 Spring Cloud 的项目而言,Spring Cloud Gateway 成为了构建 API 网关的理想选择之一。该框架旨在提供一种简单且高效的方式来配置路由规则以及实现诸如安全性、监控/度量等功能,这一切都是通过强大的过滤器机制来完成的[^2]。 具体来说,当一个 HTTP 请求到达 Spring Cloud Gateway 后,它会依次经过三种类型的过滤器:特定于当前路由定义的过滤器、全局默认过滤器(`DefaultFilter`)和全局过滤器(`GlobalFilter`)[^4]。这些过滤器可以在请求被发送到目标服务之前或响应返回给客户端之后执行各种操作,比如修改请求头信息、记录日志等。 随着技术的发展趋势,越来越多的企业倾向于使用更现代化的技术栈来进行开发工作;因此,在许多情况下,相较于 Zuul 而言,Spring Cloud Gateway 显示出了更高的性能表现和发展潜力,逐渐成为事实上的标准解决方案[^3]。 ### 使用场景 - **统一接入层**:为所有外部调用者提供单一接口,隐藏内部复杂性的同时提高灵活性。 - **流量管理**:支持动态调整不同版本间的流量分配策略,便于灰度发布和服务治理。 - **协议转换**:能够将来自不同源的数据格式标准化后再传递给下游服务消费。 - **认证授权**:集成 OAuth2.0 或 JWT 等第三方鉴权组件,保护资源免受未授权访问威胁。 - **熔断降级**:设置合理的超时时间和重试次数,防止因单点故障引发连锁反应影响整体稳定性。 ```java // 示例代码展示如何创建简单的 Spring Cloud Gateway 应用程序 @SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值