电商App服务端架构演进分析
V1.0架构:单体应用模式
架构特点
- 服务端为单一应用,对外提供HTTP+JSON接口。
- 业务逻辑通过Jar包集成,由各业务线团队提供。
- 移动团队负责接口封装,业务团队负责Jar包维护。
优点
- 开发效率高:直接复用PC端Jar包,减少重复开发。
- 协作简单:前端仅需对接移动团队,降低沟通成本。
问题
- 紧耦合依赖:Jar包更新不同步易引发兼容性问题。
- 职责过重:移动团队需深入理解所有业务逻辑。
- 并行开发困难:物理Jar包依赖导致发布周期长(2-3个月)。
V2.0架构:分布式直连模式
架构改进
- 业务线团队直接提供移动接口,与PC端共享同一Web应用。
- App前端直连多个后端服务,实现功能快速扩展。
优势
- 释放业务团队生产力,支持并行开发。
- 移动端可快速复用PC端功能。
新问题
- 端间干扰:PC端与移动端代码互相影响,稳定性下降。
- 重复开发:各后端需独立实现安全、日志等通用功能。
- 脆弱性:任一后端故障直接导致App不可用。
V3.0架构:网关分层模式
核心升级
业务解耦
- 拆分PC端Web应用、移动接口应用、核心业务服务,独立部署。
- 移动与PC逻辑物理隔离,避免互相干扰。
移动网关设计
- 通用层:集中处理安全、日志、监控等系统功能,通过拦截器实现。
示例拦截器接口:Objectfilter(Objectinput)throwsException - 路由层:根据URL映射到对应业务适配器(如
SearchAdapter)。
配置示例:www.website.com/search SearchAdapter - 适配层:转换内外协议(HTTP+JSON ↔ Hessian+二进制),聚合业务逻辑。
适配器接口:Objectadapter(Objectinput)throwsException
- 通用层:集中处理安全、日志、监控等系统功能,通过拦截器实现。
最终架构价值
- 稳定性:网关隔离后端故障,提升整体可用性。
- 高效迭代:通用功能集中维护,业务团队专注逻辑开发。
- 灵活扩展:网关支持水平扩展,适配器动态加载。
演进启示
- 阶段适配性:初期单体架构快速上线,成熟期需针对性优化。
- 解耦是关键:通过物理拆分和网关分层,解决紧耦合与重复开发问题。
- 移动特性优先:独立设计移动端架构,避免简单照搬PC模式。