浅析weblogic10 plugin中的DynamicServerList
2009-09-22 00:00:00 来源:WEB开发网 1 finally
2 {
3 String dynamicList = ri.getDynamicList();
4 if (dynamicList != null) {
5 ServerList servers = new ServerList(dynamicList, false);
6 if (!useDynamicList) {
7
8 } else {
9 servers.setHash(ri.getDynamicHash());
10 if (verbose) trace("Updating dynamic server list: " + dynamicList);
11 srvrList = servers;
12 servers.addToKnownServersList(allKnownServers);
13 }
14 }
至此,DynamicServerList 的实现流程基本能看明白了吧。而对于static server list,不建议大家使用,否则proxy的分发性能会在cluster不稳定的时候发生下降。但在cluster本身partition掉的时候,static server list会显得更好。也就是说cluster出现问题了,cluster中的member不能看到所有其他的members(甚至只能看到自己),比如 cluster中有4个server, A\B\C\D,如果某一时刻请求被dispatch到A上,而此时如果A只能看到B(即在A的眼中,只有它自己和B可以提供服务),这时候A会将只包含 A\B的cluster server list返回给proxy,那么proxy在分发后续请求的时候,只会在A\B上做load balance(C\D不会接受到请求,虽然他们还在running),直到cluster恢复正常或发生变化。而这种情况下,如果static server list的话,A\B\C\D都会接受到proxy分发过来的请求。当然这只是种非正常情况,出现这种情况的时候,我们首要任务应该是解决cluster partition的问题,而不是依赖于static server list。
更多精彩
赞助商链接