【分布式技术专题】「架构实践于案例分析」盘点分布式服务的(无状态\有状态)认证实现方案

简介: 【分布式技术专题】「架构实践于案例分析」盘点分布式服务的(无状态\有状态)认证实现方案

⽆状态 vs 有状态


有状态、⽆状态是什么


  • 有状态:服务器端需要保存请求的相关信息,每个请求可以默认地使⽤以前的请求信息


  • ⽆状态:服务器端不记录请求的相关信息,服务器处理的内容完全来⾃请求所携带的信息,以及其他服务器端⾃身所保存的、并且可以被所有请求所使⽤的公共信息

image.png




有状态


使⽤粘性会话,即:对相同IP的请求,NGINX总会转发到相同的Tomcat实例,这样就就⽆需图中的Session Store了。不过这种⽅式有很多缺点:⽐如⽤户断⽹重连,刷新⻚⾯,由于IP变了,NGINX会转发到其他Tomcat实例,⽽其他实例没有Session,于是就认为⽤户未登录。这让⽤户莫名其妙,⽤得越来越少了。

image.png



⽆状态


  • 解密Token即可拿到⽤户信息;事实上要看你项⽬的具体实现;有时候Token⾥不⼀定带有⽤户信息;⽽是利⽤Token某个地⽅查询,才能获得⽤户信息
  • 客户端传过来的也不⼀定是Token,⽽是⼀个Cookie

image.png



有状态 vs ⽆状态

image.png


外部⽆状态,内部有状态”⽅案


外部依然针对于Token进行传递到API网关服务,之后进行相关的微服务执行处理,并且后端采用的是将统一化的Session Store的存储介质,之后,可以实现即使是无状态化的服务架构,这个目前使用的较多。

image.png


外部⽆状态,内部有状态”⽅案(新老服务兼容)


通过将请求头,可以实现将有状态和无状态的服务均一视同仁,采用head的头进行分析和转发处理新服务和老服务。

image.png

⽹关认证授权,内部裸奔”⽅案

image.png



⽅案对⽐与选择

image.png




授权


访问控制模型


  • Access Control List (ACL)
  • Role-based access control (RBAC)
  • Attribute-based access control (ABAC)
  • Rule-based access control
  • Time-based access control



RBAC


用户模型、角色模型、权限模型

image.png


JWT

JWT全称Json web token,是⼀个开放标准(RFC 7519),⽤来在各⽅之间安全地传输信息。JWT可被 验证和信任,因为它是数字签名的

JWT由三部分组成:第⼀部分是Header,第⼆部分是Payload,第三部分是Signature

image.png

  • Token = Base64(Header).Base64(Payload).Base64(Signature)
  • Signature = Header指定的签名算法(Base64(header).Base64(payload), 秘钥)




相关文章
|
4天前
|
消息中间件 存储 安全
分布式系统架构3:服务容错
分布式系统因其复杂性,故障几乎是必然的。那么如何让系统在不可避免的故障中依然保持稳定?本文详细介绍了分布式架构中7种核心的服务容错策略,包括故障转移、快速失败、安全失败等,以及它们在实际业务场景中的应用。无论是支付场景的快速失败,还是日志采集的安全失败,每种策略都有自己的适用领域和优缺点。此外,文章还为技术面试提供了解题思路,助你在关键时刻脱颖而出。掌握这些策略,不仅能提升系统健壮性,还能让你的技术栈更上一层楼!快来深入学习,走向架构师之路吧!
33 11
|
3天前
|
分布式计算 大数据 数据处理
技术评测:MaxCompute MaxFrame——阿里云自研分布式计算框架的Python编程接口
随着大数据和人工智能技术的发展,数据处理的需求日益增长。阿里云推出的MaxCompute MaxFrame(简称“MaxFrame”)是一个专为Python开发者设计的分布式计算框架,它不仅支持Python编程接口,还能直接利用MaxCompute的云原生大数据计算资源和服务。本文将通过一系列最佳实践测评,探讨MaxFrame在分布式Pandas处理以及大语言模型数据处理场景中的表现,并分析其在实际工作中的应用潜力。
19 2
|
11天前
|
运维 Kubernetes 调度
阿里云容器服务 ACK One 分布式云容器企业落地实践
阿里云容器服务ACK提供强大的产品能力,支持弹性、调度、可观测、成本治理和安全合规。针对拥有IDC或三方资源的企业,ACK One分布式云容器平台能够有效解决资源管理、多云多集群管理及边缘计算等挑战,实现云上云下统一管理,提升业务效率与稳定性。
|
18天前
|
NoSQL 数据库 Redis
分布式锁的实现方案有哪些
分布式锁用于协调跨多个节点的任务执行。基于数据库的分布式锁利用唯一性约束或悲观锁确保锁的唯一性;Redis 实现则依赖 SETNX 指令或 redisson 客户端,通过原子操作保证互斥性;ZooKeeper 通过临时顺序节点与 Watch 机制,实现锁的竞争、释放及获取。
33 4
|
18天前
|
机器学习/深度学习 存储 运维
分布式机器学习系统:设计原理、优化策略与实践经验
本文详细探讨了分布式机器学习系统的发展现状与挑战,重点分析了数据并行、模型并行等核心训练范式,以及参数服务器、优化器等关键组件的设计与实现。文章还深入讨论了混合精度训练、梯度累积、ZeRO优化器等高级特性,旨在提供一套全面的技术解决方案,以应对超大规模模型训练中的计算、存储及通信挑战。
48 4
|
22天前
|
NoSQL Java 数据处理
基于Redis海量数据场景分布式ID架构实践
【11月更文挑战第30天】在现代分布式系统中,生成全局唯一的ID是一个常见且重要的需求。在微服务架构中,各个服务可能需要生成唯一标识符,如用户ID、订单ID等。传统的自增ID已经无法满足在集群环境下保持唯一性的要求,而分布式ID解决方案能够确保即使在多个实例间也能生成全局唯一的标识符。本文将深入探讨如何利用Redis实现分布式ID生成,并通过Java语言展示多个示例,同时分析每个实践方案的优缺点。
39 8
|
27天前
|
机器学习/深度学习 分布式计算 算法
【大数据分析&机器学习】分布式机器学习
本文主要介绍分布式机器学习基础知识,并介绍主流的分布式机器学习框架,结合实例介绍一些机器学习算法。
176 5
|
24天前
|
供应链 算法 安全
深度解析区块链技术的分布式共识机制
深度解析区块链技术的分布式共识机制
47 0
|
1月前
|
监控 算法 网络协议
|
2月前
|
程序员
后端|一个分布式锁「失效」的案例分析
小猿最近很苦恼:明明加了分布式锁,为什么并发还是会出问题呢?
36 2
下一篇
DataWorks