服务无状态化与 Token 方案
有状态的服务无法水平扩展。从 Session 到 JWT 到 OAuth2,Token 方案的演进背后是无状态化的设计哲学。 一、有状态 vs 无状态 1.1 有状态——服务器保存客户端信息,无法随意扩容 1.2 无状态——每个请求独立,可以随意扩容 1.3 为什么微服务要求无状态——弹性伸缩的前提 二、Session 时代的终结 2.1 Tomcat Session 的机制——JSESSIONID Cookie 2.2 分布式 Session 方案——Redis 集中存储 2.3 Spring Session——透明化 Session 共享 2.4 Session 方案的缺点——...
RESTful API 设计规范
好的 API 设计让前后端协作效率翻倍。从 URL 命名到状态码选择,从版本管理到文档生成,一套可落地的规范。 一、RESTful 的核心原则 1.1 资源导向——URL 是名词而非动词 1.2 HTTP 方法语义——GET / POST / PUT / DELETE / PATCH 1.3 状态码的正确使用 1.4 无状态——每个请求包含全部信息 二、URL 命名规范 2.1 复数形式——/users 而非 /user 2.2 层级关系——/users/{id}/orders 2.3 避免深层嵌套——最多 3 层 2.4 使用短线分隔——/...
单体到微服务架构演进
一个电商系统从 0 到千万级用户的架构演进,每一次拆分都是业务和技术双重驱动的决策。 一、阶段 1:单体架构——一切的起点 1.1 单体架构的形态——一个 war 包打天下 1.2 优点——开发简单、部署方便、调试容易 1.3 单体的瓶颈——代码膨胀、模块耦合、扩展困难 1.4 单体何时开始”痛”——团队 > 20 人、模块 > 50 个 二、阶段 2:垂直拆分——按业务域分离 2.1 拆分原则——按业务边界(商品/订单/用户/支付) 2.2 拆分后的架构——多个独立应用 2.3 带来的新问题——数据一致性、接口调用、前端聚合 2.4 这个...