Web应用高并发解决思路
来源:互联网 发布:surface laptop知乎 编辑:程序博客网 时间:2024/05/22 10:57
基本解决思路:
网站有对用户设置机型的功能,要把市面上90%的热门机型展示给用户,(两千多款机型,几百个系列,几十个品牌),并且能在线查看,选择,搜索他的机型。
土做法:
如果我们把所有机型数据放在数据库,通过用户一次查找,一次选系列,一次选品牌来发请求到后台,然后将信息反馈给用户。这样的做发会产生大量的价值不大的请求,对服务器会造成的压力。
新做法:
1.做一个后台的发布功能,在运营每次修改后机型数据后,点发布,将这繁多的品牌和机型生成静态JS。
2. 精简生成的JSON数据结构(如:原来JSON里含有pbName:"摩托落拉",优化成:b:"摩托落拉"),缩小这个JS文件大小,其实最后只有60K左右。
3. 将这个JS放在缓存里,页面上通过JS动态加载。
4. 所有的操作都将在这个JS里进行,其实就是操作JSON数据。
好处:
a.硬件方面:高性能服务器,高性能数据库,高效率的编程语言,高性能的WEB容器。
b.软件方面:
- HTML静态化,例如目前google大力推广的angularJS+html+node.js开发模式,追求极致的高效率、高并发。html静态文件加载毫无疑问快于动态编译语言jsp,asp,php等, 另外采用ajax交互,json数据格式,达到与服务器交互最少数据,网络传输更快,自然效率更高。
- 图片服务器分离,专人专事,例如图片、html、css、js可以使用Nignx 做静态资源服务器,同时nignx也是分布式系统的前置反向代理服务器的优秀选择。
- 使用缓存技术,访问频率高,变动性小的数据可以考虑放入缓存中,如,数据字典、行政区划等。如ehcache,memecached ,redis等
- 数据库集群和库表散列
- 使用镜像:提高性能和数据安全性
- 分布式集群负载均衡
- 业务分离,功能抽取独立部署
- 动静分离,减少服务端压力。
关于使用动静分离真实案例:
业务:网站有对用户设置机型的功能,要把市面上90%的热门机型展示给用户,(两千多款机型,几百个系列,几十个品牌),并且能在线查看,选择,搜索他的机型。
土做法:
如果我们把所有机型数据放在数据库,通过用户一次查找,一次选系列,一次选品牌来发请求到后台,然后将信息反馈给用户。这样的做发会产生大量的价值不大的请求,对服务器会造成的压力。
新做法:
1.做一个后台的发布功能,在运营每次修改后机型数据后,点发布,将这繁多的品牌和机型生成静态JS。
2. 精简生成的JSON数据结构(如:原来JSON里含有pbName:"摩托落拉",优化成:b:"摩托落拉"),缩小这个JS文件大小,其实最后只有60K左右。
3. 将这个JS放在缓存里,页面上通过JS动态加载。
4. 所有的操作都将在这个JS里进行,其实就是操作JSON数据。
好处:
0 0
- Web应用高并发解决思路
- .Net高并发解决思路
- java高并发解决思路
- JAVA高性能高并发解决思路
- 高并发web框架基本设计思路
- 高并发web框架基本设计思路
- 高并发量服务器性能解决思路
- java高并发的解决思路
- Web应用的负载均衡、集群、高可用的解决方案---解决高并发
- 高并发Web系统架构解决方案的几点思路
- 提升高并发量服务器性能解决思路
- 提升高并发量服务器性能解决思路
- 提升高并发量服务器性能解决思路[…
- redis + dubbo 高并发出现的问题及其解决思路
- 关于php高并发解决的一点思路
- 提升高并发量服务器性能解决思路
- 关于php 高并发解决的一点思路
- 高并发抢购思路
- 用InstallShield打包不同安装类型的安装包
- Android模仿微信拍照对话框
- 点击按钮,editText 显示/隐藏密码
- 操作系统基本概念
- 二叉查找树
- Web应用高并发解决思路
- 指针的初识
- callback回调函数理解
- socket 实例实现简单通信
- 设计模式C++实现(1)——工厂模式
- 方式地方都是反倒是
- Android中图片过大造成内存溢出,OOM(OutOfMemory)异常解决方法(4)
- qt基础
- 【NYOJ 456】