Security 与响应式 WebFlux(一)

前言

最近因为需求,进行了网关 gateway 的鉴权功能,gateway 网关中由于引入了 spring5.0 新支持的新特性 webflux,所以 security 与传统配置有了些许不同,配置方式结合业务也有几种方式,会分为几章为大家讲解一下。

WebFlux 响应式编程简介

spring5 中的响应式编程框架 webflux,到底是什么东西啊?

响应式 Web 框架 Spring WebFlux。在 ractor 基础上实现,它完全无阻塞,支持 Reactive Streams 背压,并在 Netty,Undertow 和 Servlet 3.1+ 容器等服务器上运行。

什么是响应式编程

Reactive Programming 是一种非阻塞、事件驱动数据流的开发方案,使用函数式编程的概念来操作数据流。它允许系统的一部分中的数据更改后,自动更新系统的其他部分并且以最小的成本自我更新的方式。

由于反应流是非阻塞的,因此在处理数据时,应用程序的其余部分不必等待。这有助于允许被动服务器在更传统的实现之外进一步扩展,因为应用程序中的工作线程不会等待其他资源 - 它们通常可以自由处理更多的传入请求。

简单来说 就是一个字,快,就是一个字,强,就是一个字,好,当然也没有那么好,首先,引入 webflux 就不能引入 web-stater 的包 相当于有冲突,二,快造成的后果是上层服务够快底层数据库跟不上,当然了也可以引入 Redis 等方案。

压测图对比

1.MVC 与 webflux 吞吐量对比图 从图中可以看出 同样的线程 吞吐量提高了一倍

2.MVC 与 webflux 响应时长对比图 从图中可以看出 同样的线程 一个随着用户与线程的上升响应时间拉长,webflux 比较稳定在 100ms 左右

Security

Spring Security 的前身是 Acegi Security ,是 Spring 项目组中用来提供安全认证服务的框架。

Spring Security
为基于 J2EE 企业应用软件提供了全面安全服务。特别是使用领先的 J2EE 解决方案-Spring 框架开发的企业软件项目。人们使用 Spring
Security 有很多种原因,不过通常吸引他们的是在 J2EE Servlet 规范或 EJB 规范中找不到典型企业应用场景的解决方案。

特别要指出的是他们不能再 WAR 或 EAR
级别进行移植。这样,如果你更换服务器环境,就要,在新的目标环境进行大量的工作,对你的应用系统进行重新配 置安全。使用 Spring
Security 解决了这些问题,也为你提供很多有用的,完全可以指定的其他安全特性。

Spring security 的核心功能主要包括:

总结

从上面的讲解,可以了解到为什么要把鉴权放在 gateway 网关中,利用 webflux 的吞吐高,响应稳定的特性,进行在入口处进行限制与限流,使无用的流量打不到应用服务,保证服务的稳定性与安全性。

  • Web
    109 引用 • 425 回帖 • 8 关注
  • Security
    8 引用 • 13 回帖
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    2812 引用 • 8043 回帖 • 749 关注
  • Gateway
    4 引用 • 2 回帖
1 操作
hong1yuan 在 2020-09-04 19:07:38 更新了该帖

赞助商 我要投放

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...