这里我们针对一个具体的场景,来说说一个Web项目的性能优化。场景就是:一个Web前端的请求发出之后,需要等待比较长的时间,才能得到完整的响应。针对这种情况,我们需要怎么考虑呢?三个方面:Web前端层面,应用服务器层面和存储层面。下面我们来简单说说。
一、Web前端性能优化
1.优化浏览器的访问,主要包括:减少HTTP的请求数,像各种css、js和图片能合并就合并;使用浏览器缓存;压缩页面等。
2.使用CDN加速,缓存各种静态资源。
3.使用反向代理。
二、应用服务器性能优化
1.优化我们的代码,改善设计等。
2.使用分布式缓存,将那些读写比很高并且很少变化的数据存储到内存中(如:使用redis)。
3.如果对实时性没有要求,尽可能使用异步操作,可使用消息队列(如:RabbitMQ、RocketMQ等)实现。
4.使用集群,将并发请求分发到多个机器上。
三、存储性能优化
1.数据库方面可以考虑读写分离、分库分表等;另一方面,创建一些合适的索引。
2.复杂查询用搜索引擎(如:ElasticSearch等)实现。
3.使用分布式存储等。