2012-02-06 81 views
3

我参与基于RMI的分布式解决方案的开发,并部署在多个Weblogic 10gR3(10.3.0.0)节点上。其中一个节点托管RMI服务器,其他节点通过外部JNDI提供程序访问它。在尝试通过添加额外的RMI服务器来改进我们的基础架构时,我们遇到了一些问题我们的基础设施的对Amazon EC2上的Weblogic 10gR3 RMI服务器的负载均衡请求

详情:T3://主机名:7005
-RMI服务器在管理服务器上运行,在端口7005
-RMI客户端通过远程JNDI提供指向像访问

我张贴我们到目前为止已经试过,在创建额外的RMI服务器,为什么没有奏效:

1)使用Amazon ELB - >这是因为它需要打开我们是不是一种选择运行时端口(7005)到整个互联网,这显然是一个安全漏洞。

2)配置一个多端点JNDI提供程序(类似于:t3:// hostname1:7005,hostname2:7005),这显然适用于JMS队列 - >所有请求都指向运行的RMI服务器在主机名1上,并且应用程序事实上工作正常。但是,如果故意让服务器在hostname1崩溃后面,则不会将请求指向hostname2。 (它们是否应该被重定向?)

3)利用软件负载平衡器,如HAproxy - >在HTTP层平衡时,请求被解释为“t3 10.3.0.0”,因此导致HAproxy上发生HTTP 502错误。当在TCP层上进行平衡时,我们得到了几个“丢失对象”的错误,就好像一个TCP连接被用于多个HTTP请求,并且在第一个TCP连接被终止之后,后续请求不能访问远程对象(只是猜测)。

4)我们不愿意使用集群化的WebLogic环境。

5)我们还没有考虑使用像spring-remoting-cluster这样的高级框架。

任何线索/建议?提前致谢!

回答

0

看来我唯一的(安全)选项是将我的应用程序节点添加到WebLogic群集,并通过群集平衡负载或在我的应用程序中执行重新设计。