从一个问题来映射出架构的优化。问题是:大数据并发执行,你的服务器,网页都需要怎么设计?
1.服务端使用数据缓存框架,如Memcache,Redis等。
考虑缓存数据的创建及更新时机。平时工作中的一种方法:对于需要缓存的表,增加updateTime字段,如果字段为空或者更新,则出发缓存数据的更新操作。这个动作可以用一个定时器来跑。
2.可以根据实际需求使用集群。
3.数据库优化。比如:拆库,降低库的数据量;对于大表进行拆表;利用ORM缓存技术,减少对数据库的访问次数;对于需要一次性处理大批量数据,并且有一定逻辑的,可以采用存储过程;读写分离,写入主库,查在从库,做好主从备份等。。。。
4.将静态资源放到专门服务器,客户端浏览器利用http 304缓存js、css、图片等静态资源。
5.缓存页面,如果数据不经常变动,可生成静态html页面。对于经常变换数据的,可以利用ajax来增加用户友好体验。
6.采用第三方网络加速,如CDN等。
7.代码层面的优化,如数据库连接提前释放(把数据一次性取出后,在进行逻辑处理);批量操作等。
8.反向代理等技术
。。。。。
还有很多很多,并且上面的分类也是自己想到哪里写到哪里,由此可见本人也在网优的路上边学习边研究。
网站架构的整个演变主要围绕大数据和高并发而展开。解决的方案主要是使用缓存和多资源两种类型。多资源:多存储,多CPU,多网络。可以单个资源处理一个请求,也可以多个。