首页 > 代码库 > 大型系统架构演化
大型系统架构演化
互联网系统通常会有几个特色标签:用户基数大、高并发高訪问量、海量数据存储、业务更新频繁。
看似复杂的系统也不是一蹴而就,不论什么事情都会经历一个由小到大的发展过程。今天我们就来看看一个系统是怎样随着业务的扩张而不断演化的。
1. 早期的系统因为业务简单,应用server和数据库都是在一台server。
2. 随着用户訪问量逐渐增大,系统资源慢慢成为瓶颈。此时能够考虑将应用server与数据库分离,各司其职
3. 数据压力所有压在了数据库上,此时数据库会有点吃不消,我们能够考虑将一些不常常变化的数据存在缓存中,每次先从缓存中读取。假设为空再从数据库查,同一时候将数据保存一份到缓存中。缓存要考虑失效机制,数据源头的改动一定要记的更新缓存
4. 随着站点的訪问量进一步提升。单台server吞吐量已达到上限。此时须要考虑集群策略,引入负载均衡
5. 随着上层server的不断扩充,底层数据存储与查询慢慢出现瓶颈。開始考虑分库分表。
而缓存也開始引入分布式缓存。部署多个服务存储节点
6. 随着业务的不断升级,開始考虑将按业务拆分系统。以电子商务为例,拆为商品、交易、会员、评价等。各系统间通过http协议建立连接
7. 因为各个业务系统须要互通信息。比方下单时。须要查商品的价格、库存等信息。此时引入服务化中心,每一个业务都会有自己的服务化中心,各个服务化中心通过RPC同步调用建立关联
8. 有的操作链路非常长,RT非常高。我们能够将一些不重要的操作剥离出来,採用异步消息模式,假设你对这个业务操作感兴趣,那么仅仅须要订阅消息然后进行对应的业务处理
9. 对于海量数据的存储,nosql性能更佳,比方历史订单都是存在Hbase
10. 因为用户来自全国各地,尽量让用户就近下载资源,引入cdn,cdn放的是静态内容。比方js、css、图片、静态页面等,而对于动态内容还是要请求应用server来获取
大型系统架构演化