码迷,mamicode.com
首页 > 其他好文 > 详细

大型系统架构演化

时间:2017-05-07 12:58:30      阅读:223      评论:0      收藏:0      [点我收藏+]

标签:vb6   yii   m60   pru   ntp   qt5   bbs   hdf   pgp   

互联网系统通常会有几个特色标签:用户基数大、高并发高訪问量、海量数据存储、业务更新频繁。

看似复杂的系统也不是一蹴而就,不论什么事情都会经历一个由小到大的发展过程。今天我们就来看看一个系统是怎样随着业务的扩张而不断演化的。


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来获取

技术分享



大型系统架构演化

标签:vb6   yii   m60   pru   ntp   qt5   bbs   hdf   pgp   

原文地址:http://www.cnblogs.com/gavanwanggw/p/6820349.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!