Author:skate
Time:2010/5/21
从性能考虑web的应用设计
最近看了一些性能优化的资料,根据我们自身系统的特点谈谈想法,希望对大家有帮助
1. 适当的放弃一致性说
这里的一致性不仅指数据的一致性,还广泛指集中的紧耦合的处理原则;有的时候放弃一致性会得到更多的好处(比如性能的提高,用户的体验等)
2. 备份和隔离可以解决稳定性的问题
这里说的备份是广义的备份,例如数据的冗余或副本;尽量避免多业务,多功能交织在一起,给排查问题带来难题,避免一损俱损的情况发生。过分复杂以后的扩展也是问题。
3. 分割和异步可以解决性能的问题
分割和异步是解决性能很好的方法,可以把一个整体分割为若干点,然后分而治之,避免热点瓶颈从而实现线性扩展。异步可以充分利用每一步骤的资源,就像磁盘有异步io功能似的,可以充分协调它和cpu步伐。例如我们的订单从成单到入远程数据库这一过程很复杂,包含了很多步骤,但这么多步骤肯定有快有慢的部分,要充分利用资源,提高性能,异步就可以完成。但要保证数据的正确性。
4. 批量处理
批量处理也是提高性能一个主要思想,就像公交车一样,在高峰期,可以多发几趟车,晚上人流少了,就可以少发几趟车,尽量使公交车利用率超高
这样不但节省公交部门的人力物力,还较少了交通压力。对我们的系统也是一样的,要用最少的资源干最多的事。
5. 自动化降低人为参与
自动化可以提高效率避免错误
---end---