我正在使用 Jelastic 轻松部署 Glassfish 服务器集群。作为负载均衡器,NGINX 服务器也放置在该集群的前面。基本上,每个请求首先到达 NGINX 服务器,该服务器选择将请求发送到哪个 Glassfish 服务器。
现在,我按照本教程在集群上部署了一个带有远程 EJB 的简单应用程序。它工作正常。每次我启动应用程序时,我都会从不同的机器上获得一个 EJB 实例。但是,在我重新启动应用程序之前,对这个 EJB 的所有调用将始终由同一台机器处理。
我想要的是,每次我从远程 EJB 调用一个方法时,它都由集群中的另一台机器处理。我所做的是:
- 去掉 NGINX conf 文件中的 sticky 选项;
- 将<per-request-load-balancing>true</per-request-load-balancing>添加到 glassfish-ejb-jar.xml
不幸的是,问题仍然存在......有人会知道为什么吗?谢谢