基本解决思路:
网站有对用户设置机型的功能,要把市面上90%的热门机型展示给用户,(两千多款机型,几百个系列,几十个品牌),并且能在线查看,选择,搜索他的机型。
土做法:
如果我们把所有机型数据放在数据库,通过用户一次查找,一次选系列,
a.硬件方面:高性能服务器,高性能数据库,高效率的编程语言,高性能的WEB容器。
b.软件方面:
- HTML静态化,例如目前google大力推广的angularJS+html+node.js开发模式,追求极致的高效率、高并发。html静态文件加载毫无疑问快于动态编译语言jsp,asp,php等, 另外采用ajax交互,json数据格式,达到与服务器交互最少数据,网络传输更快,自然效率更高。
- 图片服务器分离,专人专事,例如图片、html、css、js可以使用Nignx 做静态资源服务器,同时nignx也是分布式系统的前置反向代理服务器的优秀选择。
- 使用缓存技术,访问频率高,变动性小的数据可以考虑放入缓存中,如,数据字典、行政区划等。如ehcache,memecached ,redis等
- 数据库集群和库表散列
- 使用镜像:提高性能和数据安全性
- 分布式集群负载均衡
- 业务分离,功能抽取独立部署
- 动静分离,减少服务端压力。
关于使用动静分离真实案例:
业务:
网站有对用户设置机型的功能,要把市面上90%的热门机型展示给用户,(两千多款机型,几百个系列,几十个品牌),并且能在线查看,选择,搜索他的机型。
土做法:
如果我们把所有机型数据放在数据库,通过用户一次查找,一次选系列,