weblogic⾃带Proxy的⼯作原理
1、动态列表
⾸先我们来看⼀下DynamicServerList 的具体解释,默认值是enable的,
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。
proxyserver进⾏请求分发时默认是基于集的动态列表。除了动态列表,weblogic还维护了⼀份静态列表。静态列表当中配置了所有被管实例的地址和端⼝。
将proxy的服务器动态列表调整为静态列表。具体调整⽅法。
DOMAIN_HOME \applications\proxy\WEB-INF⽬录下修改l⽂件在节中添加如下配置信息:
2、查看动态列表和proxy参数
打开浏览器,访问下⾯的地址,会得到下图所⽰的结果:
   myhost:8080/session.jsp?__WebLogicBridgeConfig  (注:__是由两个_组成)
   myserver为服务地址(在这⾥是10.16.92.7)
   port为proxy服务的端⼝(在这⾥是8080)
可以对⽐下⾯两个图。⼀个是正常的,所有的受管实例都显⽰,⽽第⼆个图中只显⽰了两个实例。是因为其中的⼀个实例的状态被认为是不可⽤的。
3、开启代理服务器的监控参数
为了让⼤家了解proxy的转发原理,可以开启proxy的debug参数来看。不建议在⽣产环境中使⽤,因为会产⽣⼤量的⽇志。所有⽇志信息记录在 C:\TEMP\wlproxy.log中。
具体⽅法。
DOMAIN_HOME\applications\proxy\WEB-INF⽬录下修改l⽂件在节中添加如下配置信息:
3.1、转成功的⽰例
jsessionidWlproxy.log完整⽰例
: ===New Request===GET /odps/frame/default.jsp HTTP/1.1
: Found cookie: 579281660
: attempt #0 out of a max of 5
: #### Trying to connect to the primary server:579281660!100.16.92.51!7003!-1
: Returning recycled connection: ProxyConnection(isSecureProxy=false):
100.16.92.51:7003, keep-alive='20'secs
: In-bound headers:
: User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR
2.0.50727; .NET CLR
3.0.4506.2152; .NET CLR 3.5.30729)
: Accept-Encoding: gzip, deflate
: Accept-Language: zh-cn
: Accept: */*
: Host: 100.16.92.51
: Cookie: JSESSIONID=Q65VV1n5dlTRD2Fb0fMpgx2W
VFWM8TJhH6MQzVGtTsQTwXLb1X4n!579281660
: Successfully send request headers to server: 579281660!100.16.92.51!7003!-1
3.2、转发不成功
⾸先会尝试连接primary实例,如果连接不成功,就把这个实例mark为bad,从动态列表⾥删除,更新动态列表,再去
连secondary实例。
3.3、静态列表转发不成功的⽰例
在开启proxy的Debug参数后我们可以很明显的看到,proxy转发请求的时候会尝试连⼀个实例5次,如果5次都失败转发失败。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。