前面也有一些文章讲了些架构面上改善性能的关键考虑点,如异步,批处理,读写分离等。
但我觉得对一个大规模高并发的网站来讲,为了保证性能,最重要的还是缓存。
因此在实现时,就必须考虑到这方面的方面性。先不谈写入数据,如新增和更新的缓存实现。
在查询的部分,具体来讲,最好不要使用Ajax实现,因为这样做的话,要实现缓存就很困难了。当然可以在内存中缓存业务数据,类似Hibernate 二级缓存(当然,数据库和AP 之间加一层缓存也是相当重要的)。但这个不是王道,王道是缓存页面,直接使用URL 作为Key.这样还有一个重要的好处,就是对搜索引擎友好的多,如果使用Ajax,搜索引擎缓存的是一堆的JS,更坏的是,Ajax 生成的URL 搜索引擎可能看都看不到,更谈不上收录了。
URL 是个很梦幻的东西,通过适当的编码,可以方便地携带很多的检索条件。还有,URL Rewrite 也是个相当重要的技术。恩,就这么多了。