java - 如何在 OGS 中实现 session Bean 的集群、负载平衡和故障转移

标签 java jakarta-ee glassfish cluster-computing session-bean

JBoss 似乎有一组非常简单的用于集群和负载平衡 session bean 的注释/配置,但我在 GlassFish 3.x 文档中没有看到相同的功能。

假设我同时拥有 MyStatefulBeanMyStatelessBean bean。对于它们两者,我想要以下功能:

  • 我希望能够创建一个 Bean 集群(任意数量或规模),并将它们放在软件负载均衡器后面,该负载均衡器将轮询 Bean;和
  • 如果其中 1 个集群 Bean 由于任何原因失败,我希望将其从池中取出

GlassFish 免费/(社区版)是否支持此功能,还是我必须自己实现此功能?

与第一个问题无关:集群/负载平衡对于有状态 bean 是否有意义?我认为现在我不这么认为......但这个问题仍然适用于两种类型的 bean ,直到证明并非如此!

最佳答案

首先,如果您想在发生故障时保留 session 状态,则需要为应用程序启用高可用性。如果使用管理控制台,则部署应用程序屏幕上有一个复选框。如果您从命令行进行部署,请使用“asadmin deploy --availabilityenabled=true --target mycluster myapp.ear”。

查找 bean 时,生成的 bean RMI 代理/ stub 包含所有可用的集群 GlassFish 实例的列表。服务器的顺序是随机生成的,RMI stub 将选择列表顶部的服务器。这就是负载在集群中分布的方式。如果远程服务器发生故障,则选择列表中的下一个服务器。如果远程 bean 是有状态 session bean,则在故障转移时会保留 session 。

正如 @pdudits 提到的,请阅读有关该主题的文档以获取更深入的介绍。

希望这有帮助!

关于java - 如何在 OGS 中实现 session Bean 的集群、负载平衡和故障转移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11333850/

相关文章:

java - GlassFish 4.1 - 同时访问同一 GF 的两个域的 Web 管理控制台

java - Netbeans "illegal start of type"错误

java - 如何将方法作为参数传递?

java - 为什么 Angular 不通过 POST 请求发送 cookie,即使我已将 withCredentials 设置为 true?

tomcat - Quartz Job Scheduler - Multi-Tenancy 设置

java - 无法部署maven Restful上传文件

java - 有没有办法从 Joda Time DateTime 获取 DateTimeZone?

java - 在 Spring Security Acl 中授予权限

java - Spring Controller 销毁方法?

Eclipse (Kepler) 忽略上下文根