我在Tomcat 7中部署了两个需要通信的Java 8 Web应用程序。应用程序A有多个实例(负载均衡的多个Tomcat工作器,circle1 and circle2 change Radius(10)
circle1 and circle2 and rectangle1 change StrokeColor(Color.red) and StrokeWidth(4)
// This changes the 3 shapes' stroke color and stroke width.
),而应用程序B有一个实例。当前,A可以通过HTTP通过localhost通过B公开的SOAP Web服务启动与B的通信。
B现在需要启动与A的所有实例的通信。由于A是负载均衡的,B无法使用HTTP,因为Unit
都是通过相同的URL访问的,并且B无法控制哪个实例将接收其请求。
理想的解决方案可能类似于Web套接字连接-A的每个实例都将与B建立持久连接,而B会将数据推送到每个“订户”。
给出
是否有满足此要求的策略?
我知道RMI可用,但是我不知道它是否支持我的要求。在RMI中,B是否需要先了解A的每个实例,并需要一种唯一标识它们的方法? A的每个实例都可以建立双工连接以避免B要求A的任何知识吗?
答案 0 :(得分:0)
答案是肯定的,RMI可以满足此要求。应用程序A的每个实例都可以向应用程序B注册一个回调对象。应用程序B可以遍历所有已注册的回调对象并依次进行通知。