WEB开发网
开发学院软件开发Java 浅析weblogic10 plugin中的DynamicServerList 阅读

浅析weblogic10 plugin中的DynamicServerList

 2009-09-22 00:00:00 来源:WEB开发网   
核心提示: WebLogicCluster 10.130.2.41:7021,10.130.2.42:7021,浅析weblogic10 plugin中的DynamicServerList(2),10.130.2.43:7021WebLogicCluster 10.130.2.41:7021上面两种写法是等

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 }

2: managed server端

managed server在处理完http request后,回写response到proxy端的时候,检查当前managed server是否位于一个cluster中及request的header中是否包含X_WEBLOGIC_REQUEST_CLUSTERINFO。如果上述条件成立,再去检查当前cluster的hash,如果cluster的hash发生变化(对比当前cluster的hash和proxy传递过来的hash),则将cluster member的信息通知给proxy,这个通知也是通过http header来实现,不同的是header名为:X_WEBLOGIC_CLUSTER_LIST及X_WEBLOGIC_CLUSTER_HASH,如下:

上一页  1 2 3 4 5  下一页

Tags:浅析 weblogic plugin

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接