自创一个简单的Web分布式解决方案,欢迎大家讨论

看了论坛中不少关于分布集群解决方案,提出自己的一个解决方案,希望大家指正:

网络中有一堆集群的WebServer,分别是

cluster1.test.com
cluster2.test.com
cluster3.test.com
...

那么在此有一个前端Web流量分配器,管理员可以通过Web管理配置当前的WebServer集群数量,比如添加,减少Web集群服务器。

所有用户请求 www.test.com 的页面都会定向到一个 Servlet 中,该 Servlet 根据配置读取集群 Server 地址,然后重定向到相应的 clusterN.test.com 地址,以后用户就一直访问该 Server 了;

这样的好处是:
实现了WebServer 负载均衡,无需使用 EJB , Apache + Tomcat 即可。

缺点是需要自己实现一个负载均衡的算法,并且流量分配可控制性取决于你所实现的算法。

还是研究你自己需要什么吧

如果你是想着研究通用产品,那就去研究怎么session同步先
至于所谓的负载均衡,真忙起来,软件也忙不过来的,还是上硬件的玩意,如F5

对此我想回答两点:

1)这种做法当然是一种通用做法,不需要使用 ejb 就是因为不需要使用 ejb 中 session bean 的同步做法,用户做了第一次定向后,所有访问都在一个 clusterN.test.com 站点了。

2)不知道 croger 是否仔细看懂了内容,所有用户只有第一次请求,才会通过流量分配的 servlet ,后来就不再访问该 servlet.

我再强调,以下内容只是针对“通用”来说的

既然你想做负载均衡,连热备都不做进去
那怎么叫负载均衡?最多也是叫做首次访问自动选择器而已

类似的东西想来大应用的系统都有简单考虑过
不过是不敢拿出来说是什么通用方案就是了 ;pp

好像tomcat已经支持集群了啊(我好久没用,不知道说得对不对)
为什么还要做个这种东西出来,;pp~

to twg
你这个方案是Web集群方案,真正集群概念有两个:自动负载平衡和fail over。

关于是否使用EJB,使用EJB可以非常好地实现集群,EJB本身支持分布式计算,通过Web也可以实现fail over之类,比较麻烦,要自己实现。


resin和tomcat都支持这种load balancer

提两个问题:
1. 如果 User 被分到了 cluster1.test.com,然后因为某种原因 cluster1.test.com 死掉了,该用户怎么办?
2. 如果访问量太大, 你那个做分发的 Servlet 都无法响应了,怎么办?