浅析weblogic10 plugin中的DynamicServerList[Java编程]
本文“浅析weblogic10 plugin中的DynamicServerList[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
几近全部利用weblogic的大一点的企业环境中,城市利用到cluster, 利用cluster势必要采取proxy, proxy有很多,apache, iis及weblogic供应的HttpClusterServlet.plugin的配置参数有很多,可参考下面的链接,http://e-docs.bea.com/wls/docs92/plugins/plugin_params.html#wp1157622.这篇文章中,我们主要看看DynamicServerList 内部实现是什么模样的.
首先我们来看一下DynamicServerList 的具体注释,默许值是enable的,
When set to OFF, the plug-in ignores the dynamic cluster list used for load balancing requests proxied from the plug-in and only uses the static list specified with the WebLogicCluster parameter. Normally this parameter should remain set to ON. There are some implications for setting this parameter to OFF:
1:If one or more servers in the static list fails, the plug-in could waste time trying to connect to a dead server, resulting in decreased performance.
2:If you add a new server to the cluster, the plug-in cannot proxy requests to the new server unless you redefine this parameter. WebLogic Server automatically adds new servers to the dynamic server list when they become part of the cluster.
从上面的描写可以看出,DynamicServerList 用于使proxy及时获得后端cluster中的server列表(比方 cluster中的member增添、删除,member状况的改变(startup、shutdown)),这样proxy在load balance request的时刻可以避免除try dead server.同时可以将恳求dispatch到cluster中的新增member上(比方预定义的cluster中有server1, server2,某时刻发现后端server load对比高,新增添一个server3,这时刻,假如DynamicServerList 为on,你就不需求重新定义 WeblogicCluster,当然也不需求重起plugin).趁便提一下,DynamicServerList为on的时刻,http.conf或 HttpClusterServlet对应的web.xml中的WeblogicCluster无需定义全部的cluster member,指定肆意一个便可.
WebLogicCluster 10.130.2.41:7021,10.130.2.42:7021,10.130.2.43:7021
WebLogicCluster 10.130.2.41:7021
上面两种写法是等效的,但DynamicServerList若为off,则必须采取上面的写法.
下面我们来看看proxy是若何感知后端cluster状况的改变,从而及时更新自己手里的server list以便提高dispatch request的速度.
1:plugin端(以HttpClusterServlet为例)
在plugin处理client端恳求的时刻,它在将恳求dispatch到后端server的时刻,会在http header中加上一个名为X_WEBLOGIC_REQUEST_CLUSTERINFO的internal header, 以下:
HttpClusterServlet.java
1 protected void addRequestHeaders(HttpServletRequest request, PrintStream headerOut, Object o1, Object o2) {
2 super.addRequestHeaders(request, headerOut, o1, o2);
3
4 headerOut.print(ServletResponseImpl.X_WEBLOGIC_REQUEST_CLUSTERINFO + ": true");
5 headerOut.print(EOL);
6 }
以上是“浅析weblogic10 plugin中的DynamicServerList[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |