CACHE
对于长时间不变的配置信息或者token之类的信息,
我们没必要每次都去请求,最直接的就是放在内存中但是有大小限制和丢失的风险,
放在session里,会话已结束全挂了。推荐使用redis等缓存服务器;
if(getredis(key)){
callback(value)
}else{
getAPi(function(err,data){
callback(data)
});
}
SESSION
session中不适合存储太多的数据,因为express是默认保存在内存中的,会导致服务器压力大太,所以建议寸关键字断,比如我们用户登陆信息的openid,而非全保存
GZIP
express 中间件compression,可以方便的实现 gzip 压缩,当浏览器请求某些资源的时候,服务器会在响应返回给浏览器之前进行压缩。如果你使用的是 gzip 压缩你的静态资源,浏览器拿到它们花很少的时间,用户得到数据的速度更快,带来更好的用户体验。
var compression = require('compression');
app.use(compression()); //use compression
app.use(express.static(path.join(__dirname, 'public')));
PM2
使用pm2 cluster模式,充分利用cpu多核,建立简单的负载,提升服务吞吐量,但要注意session不能用内存,必须要用redis等服务器端缓存
真正的负载均衡,配合pm2,完美解决服务压力问题
网友评论