AOP切面与API网关

【喜欢的话可以一键三连+关注哦~】 你的三连+关注是对我最大的支持!

以统计次数为例:左:单个调用,中:AOP切面,右:API网关

用户调用过程:

AOP切面执行顺序

(上图)用户调用某个接口,在调用AOP切面

API网关执行顺序

(上图)用户调用网关,调用某个接口,再回来统计次数

AOP切面的作用

能够在调用每个接口前、每个接口后、每个接口前后去做一些事情

可以看一下项目里aop包下的两个类

AOP切面的缺点

只存在于单个的项目中,多个项目中每个项目都要引入AOP切面那个包(SDK)

API网关

类似于火车的检票口,统一去检票

API网关的优点

统一去进行一些操作、处理一些问题

API网关的应用场景(作用)

1.路由(相当于路由器、中转站、酒店前台)

起到转发的作用。比如有接口A和接口B,网关会记录这些信息,根据用户访问的地址和参数,转发请求到对应的接口(服务器/集群)

用户访问:

/a => 接口A

/b => 接口B

注意:“ => ” 代表转发到

Spring Cloud Gateway

a.负载均衡

在路由的基础上可以转发到随机的某一个机器

用户访问:

/c => 服务A/集群A(随机转发到其中的某一个机器)

注意:“ => ” 代表转发到

从固定地址改成lb:xxx

2.统一鉴权(鉴别权限)

判断用户是否有权限进行操作,无论访问什么接口,我都统一去判断权限,不用重复写。

3.统一处理跨域

网关统一处理跨域,不用在每个项目里单独处理。

4.流量染色

给请求(流量)添加一些标识,一般是设置请求头中,添加新的请求头

为了防止用户跳过网关直接访问接口

Spring Cloud Gateway

全局染色:Spring Cloud Gateway

5.访问控制

黑白名单,比如限制 DDOS IP

6.统一业务处理

把一些每个项目中都要做的通用逻辑放到上层(网关),统一处理。

比如API接口平台项目中的次数统计

7.发布控制

灰度发布,比如上线新接口、某个接口的新版本,先给新接口分配20%的流量,老接口80%,在慢慢调整比重。

Spring Cloud Gateway

8.统一接口(业务)保护
a.限制请求

Spring Cloud Gateway

b.信息脱敏

Spring Cloud Gateway

c.降级(熔断)

【兜底】万一服务器挂了也可以返回一些东西(比如:您的接口以下线)

Spring Cloud Gateway

d.限流

每分钟或每秒让用户访问多少次

建议先去学:学习令牌桶算法,学习漏桶算法,学习一下RedisLimitHandler

Spring Cloud Gateway

e.超时时间

10秒没返回强制中断

Spring Cloud Gateway

f.重试(业务保护)

Spring Cloud Gateway

9.统一日志

统一的请求、响应信息记录

10.统一文档

将下游项目的文档进行聚合,在一个页面统一查看

建议用这个:1.1 介绍 | Knife4j (xiaominfo.com)

API网关的分类

1.业务网关(包含:微服务网关)会有一些业务逻辑,作用:将请求转发到不同的业务/项目/接口/服务

2.全局网关(包含:接入层网关)作用:负载均衡 、请求日志等,不和业务逻辑绑定 【把大流量分摊成小流量,分摊到每一个机器上】

参考文章:kong网关-CSDN博客

实现

1.Nginx(全局网关)、Kong网关(API网关,Kong:官网)【个人不建议使用,编程成本相对高一点】

2.Spring Cloud Gateway(取代了Zuul)性能高、可以用 Java 代码写逻辑,适于学习

网关技术选型:

微服务网关选型:5种主流 API 网关,哪个最香! - 知乎 (zhihu.com)

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Gateway AOP 是一种基于面向切面编程(AOP)的技术,用于增强和拓展 Spring Gateway 的功能和能力。 在 Spring Gateway 中,AOP 可以用于实现对请求的拦截、日志记录、安全认证、性能监控、异常处理等增强功能。通过 AOP,可以将这些横切关注点从核心业务逻辑中分离出来,提供更好的代码结构和可维护性。 具体而言,可以使用 AOP 在 Spring Gateway 中实现拦截器(Interceptor),对特定的请求进行拦截和处理。拦截器可以在请求前后、异常抛出等时机执行额外的逻辑,例如记录请求日志、验证权限、计算请求处理时间等。这能够提供更高的代码复用性,避免在每个业务处理逻辑中重复编写相同的代码。 使用 Spring Gateway AOP 还可以实现对请求的权限认证和安全过滤。通过自定义切点和切面,可以在访问某个特定的 API 之前,进行用户身份鉴权和访问控制。这可以保证只有经过认证和授权的用户才能访问敏感数据或执行重要操作,并能够有效防止恶意请求和攻击。 此外,AOP 还可以用于对性能和异常的监控。通过定义切点和切面,可以监控请求处理的时间、资源消耗等指标,从而对系统的性能进行监控、定位和优化。同样,捕获和处理异常也是 AOP 在 Spring Gateway 中的常见用法之一,可以通过切点和切面捕获并处理请求处理中的异常,提供更好的用户体验和可靠性。 总之,Spring Gateway AOP 提供了一种灵活而强大的方式来增强和定制 Spring Gateway 的功能。通过使用 AOP 技术,可以有效地对请求进行拦截、验证、记录等操作,提供更安全、高效和可靠的网关服务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值