Java架构-高并发的解决方案( 八 )

上面提到的数据库集群由于在架构、成本、扩张性方面都会受到所采用DB类型的限制 , 于是我们需要从应用程序的角度来考虑改善系统架构 , 库表散列是常用并且最有效的解决方案 。 我们在应用程序中安装业务和应用或者功能模块将数据库进行分离 , 不同的模块对应不同的数据库或者表 , 再按照一定的策略对某个页面或者功能进行更小的数据库散列 , 比如用户表 , 按照用户ID进行表散列 , 这样就能够低成本的提升系统的性能并且有很好的扩展性 。 sohu的论坛就是采用了这样的架构 , 将论坛的用户、设置、帖子等信息进行数据库分离 , 然后对帖子、用户按照板块和ID进行散列数据库和表 , 最终可以在配置文件中进行简单的配置便能让系统随时增加一台低成本的数据库进来补充系统性能 。

8. 小结

网站架构的整个演变过程主要是围绕大数据和高并发这两个问题展开的 , 解决方案主要分为使用缓存和多资源两种类型 。 多资源主要指多存储(包括多内存)、多CPU和多网络 , 对于多资源来说又可以分为单个资源处理一个完整的请求和多个资源合作处理一个请求两种类型 , 如多存储和多CPU中的集群和分布式 , 多网络中的CDN和静态资源分离 。 理解了整个思路之后就抓住了架构演变的本质 , 而且自己可能还可以设计出更好的架构 。

推荐阅读