我的 webapp 部署在多个 JBoss 实例的集群中。webapp 中有一个管理页面来执行某些特定于 Jboss 实例的操作。
问题是请求被发送到负载均衡器,而不是直接命中特定的单个实例。
有没有办法将请求定向到特定实例?或者至少当管理页面启动时,所有后续请求(Ajax)都将坚持最初为该页面提供服务的原始实例。
我不认为 HttpSession 在这里会有所帮助。我需要针对特定实例而不是维护单个客户端的状态。
谢谢。
您正在寻找如何配置 Sticky 会话。
将用户会话中的所有请求一致地发送到同一后端服务器,称为持久性或粘性。这种技术的一个显着缺点是它缺乏自动故障转移:如果后端服务器出现故障,它的每个会话信息将变得无法访问,并且依赖于它的任何会话都将丢失。同样的问题通常与中央数据库服务器有关。即使 Web 服务器是“无状态的”而不是“粘性的”。
对特定服务器的分配可能基于用户名、客户端 IP 地址或随机分配。虽然这些方法各有利弊。
我建议请阅读下面在集群下配置 JBoss 的文章,而不是深入了解,除非您想深入了解。
http://docs.jboss.org/jbossas/docs/Clustering_Guide/beta422/html/clustering-http-nodes.html