Web应用高并发解决思路

来源:互联网 发布:surface laptop知乎 编辑:程序博客网 时间:2024/05/22 10:57
基本解决思路:

a.硬件方面:高性能服务器,高性能数据库,高效率的编程语言,高性能的WEB容器。

b.软件方面:

  1. HTML静态化,例如目前google大力推广的angularJS+html+node.js开发模式,追求极致的高效率、高并发。html静态文件加载毫无疑问快于动态编译语言jsp,asp,php等, 另外采用ajax交互,json数据格式,达到与服务器交互最少数据,网络传输更快,自然效率更高。
  2. 图片服务器分离,专人专事,例如图片、html、css、js可以使用Nignx 做静态资源服务器,同时nignx也是分布式系统的前置反向代理服务器的优秀选择。
  3. 使用缓存技术,访问频率高,变动性小的数据可以考虑放入缓存中,如,数据字典、行政区划等。如ehcache,memecached ,redis等
  4. 数据库集群和库表散列
  5. 使用镜像:提高性能和数据安全性
  6. 分布式集群负载均衡
  7. 业务分离,功能抽取独立部署
  8. 动静分离,减少服务端压力。 
关于使用动静分离真实案例:

业务:
     网站有对用户设置机型的功能,要把市面上90%的热门机型展示给用户,(两千多款机型,几百个系列,几十个品牌),并且能在线查看,选择,搜索他的机型。
 
土做法:
     如果我们把所有机型数据放在数据库,通过用户一次查找,一次选系列,一次选品牌来发请求到后台,然后将信息反馈给用户。这样的做发会产生大量的价值不大的请求,对服务器会造成的压力。
 
新做法:
     1.做一个后台的发布功能,在运营每次修改后机型数据后,点发布,将这繁多的品牌和机型生成静态JS。    
     2. 精简生成的JSON数据结构(如:原来JSON里含有pbName:"摩托落拉",优化成:b:"摩托落拉"),缩小这个JS文件大小,其实最后只有60K左右。
     3. 将这个JS放在缓存里,页面上通过JS动态加载。
     4. 所有的操作都将在这个JS里进行,其实就是操作JSON数据。
 
好处:
0 0
原创粉丝点击