最近偶然读书《大型网站技术架构》 李智慧著作

说说我自己的心得。

其实看这本书主要是结合自己在多年的工作和项目中遇到的问题,发现软件项目架构技术,主要目的还是为了易扩展、易维护、高性能等。

其中,易扩展易维护这个,现有很多设计模式什么的很多了。但是高性能这块还是不是太多的,也是很多新手容易忽略的。

我公司做的项目就是这样,就像是学生在学校写的小程序一样,很多小程序或者小页面堆积在一起就形成了公司现在的系统。

然而,随着工作站数量越来越多,数据量越来越大,维护起来越来越困难,也越来越慢。


废话说了一大堆,不说了,下面直接上干货吧,都懂的。

1,优化sql语句。

2,添加索引,拆分表,将历史久远的数据和近期数据分离。

3,不是频繁更新的数据采用缓存。nosql?

4,多线程。

5,将数据库放到io能力较强的磁盘上。(固态或者阵列)

6,分布式。将数据访问和业务处理应用分开到多个服务器。

7,引入负载均衡机制,分摊服务器压力。

8,引入队列概念,将数据操作异步处理。(实时性要求不高的操作,说白了还是多线程。)

9,优化前端呈现。根据业务需要,将前端不是很紧急的操作多线程执行,将影响页面呈现的关键操作尽早执行。(还是多线程)

10,以上几点,根据项目和业务的具体情况,选择性使用,找到真正影响性能的瓶颈,对症下药。

11,如果是io操作是瓶颈,调查磁盘阵列带宽等。如果是cpu操作瓶颈,采用分布式或者负载均衡。如果内存瓶颈,增大内存。

12,再叮嘱一下,具体情况具体分析,还是要根据项目的架构和业务采用相应的策略,千万不要盲目照搬模式和架构。

写完了,发现似乎还是废话,看个人的领悟力了。