一、架构设计详解
用户服务 User Service
1. 需求分析理解上下文与关键需求
-
业务目标: 安全可靠地验证用户身份,提供访问系统的凭证(Token)。
-
功能性需求:
-
支持用户名/密码登录、手机号/验证码登录。
-
支持登出(可选,取决于Token管理方式)。
-
支持Token刷新。
-
提供用户基础信息。
-
-
非功能性需求 (关键!):
-
安全性 (最高优先级): 防暴力破解、防撞库、密码安全存储(加盐哈希)、敏感信息保护、Token防泄漏/防篡改、防止重放攻击。
-
可用性: 登录是入口,高可用至关重要(99.9%+)。避免单点故障。
-
性能: 登录操作频繁,响应延迟要低(如 < 200ms)。验证码生成/校验、密码哈希计算不能成为瓶颈。
-
可扩展性: 能应对登录高峰期(如促销活动开始)。
-
可维护性: 清晰的结构,易于集成新的登录方式(如微信登录)。
-
用户体验: 登录流程顺畅,错误信息友好(但不泄露安全细节)。
-
2. 架构设计 (概念性与深入设计结合)
-
核心组件:
-
User Service: 登录逻辑的核心承载者。包含用户数据存储(DB)、密码验证、Token生成/验证逻辑(或与认证服务器交互)。 -
Redis集群: 核心基础设施。用于:-
存储会话Token(JWT的Refresh Token,或传统Session ID)。
-
存储短信/邮箱验证码(设置短TTL)。
-
实现登录失败次数限制(防暴力破解)。
-
存储黑名单Token(登出后立即失效)。
-
-
API Gateway: 统一入口。负责:-
将登录请求路由到
User Service。 -
执行基础安全策略(如IP限流 - 防止刷接口)。
-
(可选)与
User Service配合进行Token校验(在网关层拦截非法请求)。
-
-
SMS Service/Email Service(或集成到通知服务): 负责发送登录验证码。 -
<Config Center: 管理安全相关配置(如密码哈希强度、Token有效期、失败锁定阈值)。
-

2834

被折叠的 条评论
为什么被折叠?



