首页 新闻 搜索 专区 学院

请问这样的部署架构合理不?

0
悬赏园豆:80 [已关闭问题]

3台服务器

A纯DB服务器,B为业务逻辑服务器,访问DB,开放webservice接口,

C为web服务器,只通过webservice与B通讯

 

然后B可以做cache,C可以多台做负载均衡

请问这样合理不?是不是稍微有点规模的都是这样做的?

是不是这样的结构在小访问量的情况下与单独一台(逻辑、web在一台)的结构要慢很多?因为调用webservice比较慢?

rad的主页 rad | 初学一级 | 园豆:28
提问于:2010-08-10 11:07
< >
分享
其他回答(5)
0

多大的访问量,可以前期架构的时候,考虑到这样的设计,等到一定程度的时候再做分离。

可以根据需求来做分离,比如:如果此项目有很多图片资源需求请求,可以试着把图片资源单独分离出来。

Astar | 园豆:40805 (高人七级) | 2010-08-10 11:15
其实我主要想问问,B和C之间这样完全用webservice通讯的方式合理不……
支持(0) 反对(0) rad | 园豆:28 (初学一级) | 2010-08-10 11:36
@rad:可以看看大众点评网的技术架构过程。 http://dlc2.sdo.com/FTP/cop/20100624/1/dianping-20100619-high.mov
支持(0) 反对(0) Astar | 园豆:40805 (高人七级) | 2010-08-10 13:23
0

小访问量一般一台服务器就够了,

jowo | 园豆:2834 (老鸟四级) | 2010-08-10 11:23
0

不合理,web service的目的在于整合企业内部的业务,提供给不同的前端应用使用,比如你的页面有java script取数据的操作,那么就可以直接从 web service取,而不必通过你的web服务器C取。

我的建议,是把B作为数据缓存服务器,可以做集群,业务逻辑还是放到C服务器,C服务器本身要做页面缓存。现在有很多开源的缓存组件,可以直接使用,比如Memcache,velocity等,其和外部应用的通讯是使用tcp的数据传输。

MySpace早期就是你这样的架构,后来为了应对更多的用户,它们就改成我告诉你的这个架构了,再往后,就是把写数据库和读数据库分离,以及使用CCR等,具体的你可以看看MySpace的服务器架构变更历史。

Launcher | 园豆:45045 (高人七级) | 2010-08-10 11:45
关于您的建议,我是不是可以这样理解:C即做web,也做业务逻辑,也有访问数据?同在一台机器上,通信成本就没有了是吧?
支持(0) 反对(0) rad | 园豆:28 (初学一级) | 2010-08-10 15:54
是的。但是,如果你的业务逻辑和数据访问并非只提供给你的web使用,或者web只占有20%的使用权,那你就应该建立单独的web service服务器,同时,增加数据缓存服务器D,web总是先从D取数据,没有再从web service取数据。
支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2010-08-10 17:18
0

不合理

++逍遥子 | 园豆:200 (初学一级) | 2010-08-10 14:22
0

如果是企业内部应用,合理,毕竟很多企业信息化都是用java webservice来做中间层的

如果是高性能互联网应用,webservice确实不快!

LanceZhang | 园豆:857 (小虾三级) | 2010-08-10 14:25
如果是后者,可否指点一下如何做?
支持(0) 反对(0) rad | 园豆:28 (初学一级) | 2010-08-10 15:51
如果是后者,需要考虑的问题很多,比如直接走tcp协议比http要快些、应用服务器与web服务器之间的网络架构(光纤?超长帧?)等等。。
支持(0) 反对(0) LanceZhang | 园豆:857 (小虾三级) | 2010-08-11 14:21
建议楼主看看高性能web开发方面的书籍,这方面知识很深,不只一两个结构细节能够handing的
支持(0) 反对(0) LanceZhang | 园豆:857 (小虾三级) | 2010-08-11 14:22
0

如果是.net 的话, 可以用WCF 来做,利用TCP 通信, 传输速度要快很多。Web Services 的速度真的要低很多、数据量小还可以。大一点就很难受了。

HUHU慈悲 | 园豆:9973 (大侠五级) | 2010-08-10 15:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册