大型系统架构演化 历史进程



大型系统架构演化 历史进程。

互联网系统一般会有几个特色标签:用户基数大、高并发高访问量、海量数据存储、业务更新频繁。看似复杂的系统也不是一蹴而就,任何事情都会经历一个由小到大的发展过程。今天我们就来看看一个系统是如何随着业务的扩张而不断演化的。

 

1. 早期的系统由于业务简单,应用服务器和数据库都是在一台服务器。

2.  随着用户访问量逐渐增大,系统资源慢慢成为瓶颈。此时可以考虑将应用服务器与数据库分离,各司其职

 

3. 数据压力全部压在了数据库上,此时数据库会有点吃不消,我们可以考虑将一些不经常变化的数据存在缓存中,每次先从缓存中读取,如果为空再从数据库查,同时将数据保存一份到缓存中。缓存要考虑失效机制,数据源头的修改一定要记的更新缓存

 

4.  随着网站的访问量进一步提升,单台服务器吞吐量已达到上限,此时需要考虑集群策略,引入负载均衡

 

5. 随着上层服务器的不断扩充,底层数据存储与查询慢慢出现瓶颈,开始考虑分库分表。而缓存也开始引入分布式缓存,部署多个服务存储节点


 

6. 随着业务的不断升级,开始考虑将按业务拆分系统,以电子商务为例,拆为商品、交易、会员、评价等,各系统间通过http协议建立连接

 

7. 由于各个业务系统需要互通信息,比如下单时,需要查商品的价格、库存等信息,此时引入服务化中心,每个业务都会有自己的服务化中心,各个服务化中心通过RPC同步调用建立关联

 

8. 有的操作链路很长,RT很高,我们可以将一些不重要的操作剥离出来,采用异步消息模式,如果你对这个业务操作感兴趣,那么只需要订阅消息然后进行相应的业务处理

 

9.  对于海量数据的存储,nosql性能更佳,比如历史订单都是存在Hbase

 

10. 由于用户来自全国各地,尽量让用户就近下载资源,引入cdn,cdn放的是静态内容,比如js、css、图片、静态页面等,而对于动态内容还是要请求应用服务器来获取