gpt4 book ai didi

Tomcat负载均衡环境下Java应用间通信

转载 作者:行者123 更新时间:2023-11-30 10:04:12 25 4
gpt4 key购买 nike

我在 Tomcat 7 中部署了两个需要通信的 Java 8 Web 应用程序。应用程序 A 有多个负载平衡的实例(多个 Tomcat worker,A1... An),而应用程序 B 有一个实例。 A 目前可以通过 B 公开的 SOAP Web 服务,通过本地主机通过 HTTP 启动与 B 的通信。

B 现在需要发起与 A 的所有实例的通信。因为 A 是负载均衡的,B 不能使用 HTTP,因为 A1...An 都是通过相同的 URL 访问的,B 无法控制哪个实例将接收其请求。

理想的解决方案可能类似于网络套接字连接 - A 的每个实例都会建立到 B 的持久连接,B 会将数据推送到每个“订阅者”。

鉴于此

  • A 和 B 都是 Java 8 应用
  • 两者都部署在同一个 Tomcat 安装中,并且
  • 没有非Java应用程序与B通信的要求

有没有满足这个要求的策略?

我知道 RMI 可用,但我不知道它是否支持我的要求。在 RMI 中,B 是否需要 A 的每个实例的先验知识,以及唯一标识它们的方法?是否可以通过 A 的每个实例建立双工连接以避免 B 需要 A 的任何知识?

最佳答案

答案是肯定的,RMI可以满足这个要求。应用程序A的每个实例都可以向应用程序B注册一个回调对象。应用程序B可以遍历所有已注册的回调对象并依次通知。

关于Tomcat负载均衡环境下Java应用间通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56010258/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com