下一代社区的三种处理集群的思想

来源:互联网 发布:淘宝吃老王 幸运大抽奖 编辑:程序博客网 时间:2024/05/23 13:31

昨天跟余毅、李国平、公司几个同事,一起聊天讨论下一代社区集群扩展性的时候,后来我想了一晚上,觉得下一代社区处理集群有三种方式:

首先要明确一点,在小用户量下,也许下面的集群思想,会让程序性能比较差,但是,小用户量下,虽然性能差,用户体验并不差。大数量下,性能好,同时用户体验也不差。我们要追求的是不论大小用户量下,用户体验好,而不是性能最好。

下一代社区,如果发现单台服务器没法再提升性能(费用太高,不可接受)的时候,可以通过下面三种方式,通过增加服务器,改善用户体验。要求不用修改代码,只需要通过配置就可实现:

1、纯技术上的分布式。
利用微软Win的负载均衡,平均分摊WEB层服务器的压力;
利用微软COM+(企业开发)的分布式功能,均摊中间层业务逻辑和缓存;
利用微软数据库的集群思想,均摊数据库服务器的压力;
利用集群概念,提升静态内容服务器的性能,以及分流到不同的服务器。

2、把各个功能模块拆分开,各个功能模块松耦合,实现SOA和AOP的思想。
WEB部分,短消息、斑竹管理、普通论坛这些功能模块可以分别部署到不同的服务器上,每台服务器上完成一个服务。各个服务之间是松耦合的。
中间层同WEB层,也根据功能拆分到不同的应用域中。
数据库上,也根据功能拆分到不同的数据库。
静态内容,也可以根据功能拆分。

3、拆分论坛,每一个论坛都是一个独立的部分。
比如,我们可以把 .net 社区的WEB层、中间层、静态文件层、数据库层都专门是针对 .net 社区的,其他社区的内容不会影响到他们。
我们也可以WEB层,VC和VB是分开的,而中间层VC和VB是并用的,静态文件层和数据库层也是并用的。
通过这样灵活的方式,可以方便的通过增加服务器来提高整个系统的用户体验。

注意,拆分论坛这种方式,可以充分的利用现有旧机器,是扩展性最大的方式。前面两种集群方式,其实他们的扩展性,有一定限制的,无法无限制扩充,而第三种方式,可以无限制扩充。

下一代社区应该支持以上三种方式的集群。不需要修改代码,就可以实现增加机子就改善用户体验。

原创粉丝点击