一个网站的架构是进化出来的,不是设计出来的。
架构是为了业务服务,在业务没有达到足够大的量级之前,没有必要为了架构而架构。只有随着业务的规模变大,才逐渐有了架构的进化。
以一个在线电商平台为例,讲一下架构的进化过程。
1. 单体服务器
商品/订单/用户/交易 都在一台服务器上
2. 数据库单独部署
应用继续增加,应用服务器承压
3. 应用服务器做集群
4. 数据库读书写分离,部署多台
(1)数据库读写分离怎么操作
(2)数据库的同步
(3)数据库路由
5. 引入搜索引擎
搜索引擎的索引数据怎么去做同步? 实时增量同同步? 还是定时全量同步?
6. 解决访问量持续增高
缓存 redis cdn
限流
降级
7. 数据库的水平/垂直拆分
将一个应用服务器按业务拆分为 商品 订单 用户等几个数据库
8. 对商品、 订单、用户等各个服务进行集群 (分布式)
session跨域共享问题 (cookie存储jsessionID和 session)
session replication --> session 集中存储 --> cookie