2012-02-06 79 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羣集,並通過羣集平衡負載或在我的應用程序中執行重新設計。