集群环境中的EJB会话Bean池

Sha*_*ngh 1 java ejb

我想知道EJB会话bean池如何在集群环境中工作,假设如果有三个集群节点并且一个节点出现故障,那么会话bean池将如何复制并且相同的请求操作将在另一节点上继续。谢谢,谢兰德拉·辛格

Gab*_*uru 5

回答你的问题有点困难,因为我认为你需要更多关于集群的背景知识,但我会尝试......

构建集群的主要动机之一是为您的应用程序提供一种称为高可用性的属性,即即使发生硬件故障或需要执行维护任务(例如更新新的软件版本),系统仍可以继续工作。完毕。

实现此目的的最简单方法是使用负载平衡,这意味着当集群的节点发生故障时,传入的请求将由其他活动节点管理。

具体说说EJB服务;负载平衡是通过EJB客户端的Stub来完成的,Stub有一个包含集群节点IP的列表。每次客户端需要发出请求时,Stub 都会从列表中选择一个 IP。如果一个节点发生故障,他的IP将不可用,直到该节点恢复。

可以看到,节点之间没有数据复制,只是负载均衡。(EJB 不知道这个过程)

如果集群是异构的,那么事情会更加复杂,因为客户端需要一个名为 HA-JNDI 的服务来查找存根。

有些应用程序(绝大多数)需要特殊的要求,因此负载均衡有时是不够的;例如,当一个节点发生故障时,将处理下一个客户端请求的新节点必须知道故障节点正在管理的信息状态。如果信息之前至少已复制到其他集群的节点中,则可以完成此操作。当您添加状态复制时,您的应用程序就是容错的。

这种状态复制是由一个称为分布式缓存的特殊应用程序服务器组件完成的,作为开发人员,您的主要职责是告诉应用程序服务器需要复制哪些信息(服务)、多久复制一次等。

我希望这可以帮助您作为下一次阅读的起点。

注意:EJB池是其他应用程序服务器服务,与集群无关。