我在 glassfish 3 集群内的 ejb 负载平衡有问题。
我有一个包含 EJB 模块和 WEB 模块的耳朵项目。我所有的 EJB 在 EJB 模块中都是无状态的和远程的。在 WEB 模块中,我有一个 servlet,它假设查找 ejb 并在集群中的哪个实例上打印他得到 ejb。
我像这样从 servlet 调用 EJB:
Properties props = System.getProperties();
props.setProperty("com.sun.appserv.iiop.endpoints", "10.8.10.202:23700,10.8.10.203:23700,10.8.10.204:23700,10.8.10.205:23700");
InitialContext ic = new InitialContext();
EJBRemote ejb = (EJBRemote) ic.lookup("java:global/app-name-ear/app-ejbs/EJB!com.tt.EJBRemote");
问题是我的请求总是以 4 的第一个实例结束。
在我的情况下如何实现负载平衡?我是否需要独立客户端(单独项目中的网络应用程序)?glassfish 集群如何知道我的 servlet 可以在其他实例中查找 EJB?