【问题标题】:Best way to communicate between Spring applications within same JVM在同一 JVM 中的 Spring 应用程序之间进行通信的最佳方式
【发布时间】:2018-02-22 14:04:45
【问题描述】:

我正在寻找任何与 Spring 等效的具有本地接口的 EJB 的想法。我想在一个应用程序服务器(Tomcat)中的 webapps 之间进行通信,获得类似跨应用程序直接调用的东西。

提前感谢您的帮助。

【问题讨论】:

标签: java spring tomcat ejb


【解决方案1】:

最佳方法取决于您的要求。
对于同一个 JVM 中的两个 webapp,我认为您没有标准。

请注意,在任何情况下,EJB 容器都提供了在同一服务器中托管的两个应用程序之间进行通信的功能,而您可能无法通过其他技术(池、事务等)开箱即用。

1) RMI,面向组件,接近 EJB,但技术水平较低

确实,从技术上讲,RMI 与依赖于 RMI 技术(除其他外)的 EJB 技术很接近。
但 RMI 也是一个低级 API,因此您应该重写 EJB 提供的许多开箱即用的功能(池、事务等......)。

2) REST,一种面向服务和互操作性的技术

如今,这些 Web 应用托管在同一个 Tomcat 实例上。
明天,出于多种原因(负载过多、云计算等等),这些可以部署在不同的 JVM 上。
使用比 JVM 更高的抽象和更标准的方式在应用程序之间进行通信(例如 HTTP REST)可能是一件好事。

【讨论】:

  • RMI 天哪! :) 有人在用吗? JMS 虽然会是一个更合适的建议......
  • @Eugene 我认为不是很多 :) 从技术上讲,RMI 更接近于 JMS API 的 EJB 技术,因为 EJB 基于(除其他外)RMI。在作为关于如何在两个应用程序之间进行通信的一般问题之后,我将使用 REST。如果 REST 不可行,我确实会使用 JMS。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-17
  • 2015-09-03
  • 2014-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-03
相关资源
最近更新 更多