珍爱网服务架构演进历程
背景介绍
- 背景:2018年,珍爱网业务规模爆发性增长,导致业务系统出现瓶颈。
- 目标:构建一套统一的技术栈,解决现有问题,具备前瞻性。
关键步骤
-
微服务拆分
- 使用Spring Cloud + Dubbo微服务框架。
- 引入API-Gateway,统一承接南北流量。
- 搭建
zhenai-framework
作为应用基础框架。
- 引入主流开源中间件。
-
网关层
- 基于Spring Cloud Gateway,提供请求验证、黑白名单、熔断限流等功能。
MergeFilter
允许客户端组合请求,减少页面初始化时请求数。
-
数据层
- 数据库故障占比70%,主要原因是业务共用数据库和Mycat单点问题。
- 拆分一应用一数据库,使用云数据库。
- 去除Mycat,应用直接连接数据库,优化分库分表策略。
-
全链路优雅停机
- 实现服务重启流量控制,避免CPU飙升和响应变慢。
- 启动时间均衡算法,确保流量均匀分配。
-
研发流程
- 使用
zhenai-framework
,减少业务方感知,提高需求上线效率。
- 容器化插件
zhenai-dockerx-plugin
,支持多环境管理和组件管理。
-
双云双活
- 实现应用双活和数据灾备,流量不跨云。
- 底层架构支持双云模式,减少应用感知。
关键数据
- 数据库故障占比:70%
- 数据库改造后,基础设施能力提升,快速实现目标架构。
Sharding-proxy
功能:用户权限控制、route、explain、动态刷新配置。
架构演进
- 2018年:微服务拆分,应对业务快速发展。
- 2019年:数据层改造,托管基础设施。
- 2020年:容器化与DevOps,与微服务架构相辅相成。
- 2021年:双云双活,提升服务稳定性和数据安全性。
- 2022年:云原生,尝试下一代微服务治理架构。
总结
通过不断暴露问题、解决问题,珍爱网逐步构建了一套完善的微服务治理架构,实现了技术架构的持续迭代和优化。