3台服务器
A纯DB服务器,B为业务逻辑服务器,访问DB,开放webservice接口,
C为web服务器,只通过webservice与B通讯
然后B可以做cache,C可以多台做负载均衡
请问这样合理不?是不是稍微有点规模的都是这样做的?
是不是这样的结构在小访问量的情况下与单独一台(逻辑、web在一台)的结构要慢很多?因为调用webservice比较慢?
多大的访问量,可以前期架构的时候,考虑到这样的设计,等到一定程度的时候再做分离。
可以根据需求来做分离,比如:如果此项目有很多图片资源需求请求,可以试着把图片资源单独分离出来。
小访问量一般一台服务器就够了,
不合理,web service的目的在于整合企业内部的业务,提供给不同的前端应用使用,比如你的页面有java script取数据的操作,那么就可以直接从 web service取,而不必通过你的web服务器C取。
我的建议,是把B作为数据缓存服务器,可以做集群,业务逻辑还是放到C服务器,C服务器本身要做页面缓存。现在有很多开源的缓存组件,可以直接使用,比如Memcache,velocity等,其和外部应用的通讯是使用tcp的数据传输。
MySpace早期就是你这样的架构,后来为了应对更多的用户,它们就改成我告诉你的这个架构了,再往后,就是把写数据库和读数据库分离,以及使用CCR等,具体的你可以看看MySpace的服务器架构变更历史。
不合理
如果是企业内部应用,合理,毕竟很多企业信息化都是用java webservice来做中间层的
如果是高性能互联网应用,webservice确实不快!
如果是.net 的话, 可以用WCF 来做,利用TCP 通信, 传输速度要快很多。Web Services 的速度真的要低很多、数据量小还可以。大一点就很难受了。