论坛首页 Java企业应用论坛

Weblogic集群判断当前服务器名称

浏览 4128 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-07-23  

      在Weblogic集群环境下,请求被代理服务器动态的分配到多个节点上,如何在程序中判断当前提供服务的是哪个节点呢?

      笔者试过取当前服务器IP地址的方法,但如果集群是部署在同一台机器上,那这个方法无效。也试过取服务器端口号,但是由于请求都是从代理服务器转发过来的,所以通过Request对象取得的端口号实际上是代理服务器的端口号。也试过在程序中加入不同的配置文件来解决,但这样作增加了部署的难度(需要每个节点单独部署)。

     其实有一个非常简单的作法可以解决这个问题,就是判断JVM的启动参数中的"weblogic.Name"参数。因为在集群情况下,启动Weblogic Server都是通过启动受管Server的方式,JVM参数中一定会有一个"weblogic.Name"参数,而且这个参数在集群中不允许重复。

 

String serverName = System.getProperty("weblogic.Name");  
 

     通过这个参数可以很方便的判断当前请求访问的是哪个服务器。

 

     更多精彩原创文章请关注笔者的原创博客:http://www.coolfancy.com

 

   发表时间:2012-07-23  
部署在同一台机器的也叫集群?
0 请登录后投票
   发表时间:2012-07-23  
当然 也叫集群
0 请登录后投票
   发表时间:2012-07-23  
只要是部署在不同的JVM实例上,都算是集群。一台高性能的机器启动多个JVM实例进行部署,是常见的做法。不过我有个问题:什么情况下需要获得当前Server的名字呢?如果在程序里面写死这个逻辑,那么以后集群扩展的时候,程序不久挂了么?
0 请登录后投票
   发表时间:2012-07-24  
evanzzy 写道
只要是部署在不同的JVM实例上,都算是集群。一台高性能的机器启动多个JVM实例进行部署,是常见的做法。不过我有个问题:什么情况下需要获得当前Server的名字呢?如果在程序里面写死这个逻辑,那么以后集群扩展的时候,程序不久挂了么?

一般情况下是不用的,我们有个特殊的需求要手动计算每台服务器的PV值,客户要求的,没办法。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics