from
http://blog.sina.com.cn/s/blog_6850d6c00100io92.html
所谓良好的WEB架构,无非就是针对团队现有资源,在性能要求、易扩展性、易编程三者中寻找平衡点
人少有人少的做法,人多自然可以侧重性能而淡化易编程,最终能和谐的完成就皆大欢喜
上述架构说明:
1、 采取读写分离机制,初期可以用一台主DB服务器以及一台从DB服务器
2、 对于写入频繁的操作(如发帖),可采用间隔写入机制
3、 如果前端压力过大,可加大缓存层,或直接扩展机子
4、 减少数据库挂了产生的影响,不过需要运维的监控及时
程序实现方面的规则说明:
1、页面尽可能静态化,对于局部需要更新的地方以ajax接口形式获取
2、对于静态页面数量太大,全部生成一次麻烦的地方,则采用被动更新机制,如会员相关资料修改后,可触发单独生成相关会员的资料页面
3、对于实在需要实时查的地方,就放胆查吧,架构已能撑起一定大的查询量了
数据库构造及查询相关:
1、对于量大的表以分表形式来做,当然Mysql5支持分区,对程序透明更好
2、相关表字段、索引构造的重要性不在赘述,请多读mysql手册
3、关键还是测试期充分打开慢查询记录,以及多结合mysqldump工具分析SQL瓶颈
其他:
实现的细节还是有挺多要考虑到的,除此外使用流行的nginx+php结构能将性能最大化
http://blog.sina.com.cn/s/blog_6850d6c00100io92.html
所谓良好的WEB架构,无非就是针对团队现有资源,在性能要求、易扩展性、易编程三者中寻找平衡点
人少有人少的做法,人多自然可以侧重性能而淡化易编程,最终能和谐的完成就皆大欢喜
上述架构说明:
1、 采取读写分离机制,初期可以用一台主DB服务器以及一台从DB服务器
2、 对于写入频繁的操作(如发帖),可采用间隔写入机制
3、 如果前端压力过大,可加大缓存层,或直接扩展机子
4、 减少数据库挂了产生的影响,不过需要运维的监控及时
程序实现方面的规则说明:
1、页面尽可能静态化,对于局部需要更新的地方以ajax接口形式获取
2、对于静态页面数量太大,全部生成一次麻烦的地方,则采用被动更新机制,如会员相关资料修改后,可触发单独生成相关会员的资料页面
3、对于实在需要实时查的地方,就放胆查吧,架构已能撑起一定大的查询量了
数据库构造及查询相关:
1、对于量大的表以分表形式来做,当然Mysql5支持分区,对程序透明更好
2、相关表字段、索引构造的重要性不在赘述,请多读mysql手册
3、关键还是测试期充分打开慢查询记录,以及多结合mysqldump工具分析SQL瓶颈
其他:
实现的细节还是有挺多要考虑到的,除此外使用流行的nginx+php结构能将性能最大化