四种方式构建可拓展的系统

阅读 Scalability for Dummies 的小抄,这系列文章从克隆,数据库,缓存和异步这4个角度,教大家如何构建一个可拓展的应用程序。

1. 克隆应用

  • 负载均衡+集群

  • 无状态,Session共享问题

2. 数据库

2.1. RMDBS

  • 主从复制(从读,主写)配合通过添加RAM纵向拓展主库

  • sharding 数据库分片

  • denormalization

  • SQL tuning SQL调优

2.2. NOSQL

  • 使用NOSQL配合RMDBS

什么是denormalization?

3. 缓存

当从数据库中获取大量数据时,您的用户仍然需要经历缓慢的页面请求。通过缓存高效地优化页面访问速度。请选择内存间缓存,例如Redis(每秒执行数百万次读操作),Memcached。

两种缓存数据模式

  1. Cached Database Queries 缓存SQL查询结果集

  2. Cached Objects 缓存对象。场景举例:用户会话,博客文章,热门数据,社交关系。

4. 异步

4.1. 页面静态化,CDN

4.2. 消息队列

I recommend you take a look at the first 3 tutorials on the RabbitMQ website.

你可能感兴趣的:(四种方式构建可拓展的系统)