我有一个 Web 服务,它在几台 JBoss 服务器上运行。
配置如下:
Apache (as Load Balancer) -> (n instances of) Jboss
如果我真的需要 Apache 作为 LB,我会感到受伤。我发现,JBosses 服务器可以在 Channel 中工作。 但我不确定这是否意味着该 channel 可以作为 LB 工作,如果我从 Apache 向服务器 1 发送请求,JBoss 服务器会将该请求分发到负载较少的服务器?
如果不是,那么 channel 意味着什么?
最佳答案
在 JBoss 中,节点之间的通信由 JGroups 组通信库处理,其中 JGroups Channel
提供跟踪的核心功能谁在集群中并在集群成员之间可靠地交换消息。具有相同配置和名称的 JGroups channel 能够动态地发现彼此并形成一个组。
例如分布式HttpSession
缓存或EJB3
缓存使用的 channel 。
在基于 HTTP 的 JBoss 服务中,需要外部负载均衡器来处理所有请求并将它们分派(dispatch)到集群中的服务器节点。负载均衡器在逻辑上是集群的一部分,但我们将其称为“外部”,因为它与客户端或任何 JBoss AS 实例不在同一进程中运行。它可以用软件(mod_jk、mod_cluster 等)来实现。
引用: http://docs.jboss.org/jbossclustering/cluster_guide/5.1/html/clustering-blocks.chapt.html
关于java - 带有负载均衡器的 JBoss 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26506410/