Java 在单个容器上的应用程序之间进行通信的最快方式

Java 在单个容器上的应用程序之间进行通信的最快方式,java,jakarta-ee,servlets,wildfly,Java,Jakarta Ee,Servlets,Wildfly,我必须使用单个数据库在单个Wildfly容器上运行应用程序。目前,它们是使用JAX-RS相互通信的,我想知道还有更快的方法吗 我已经发现: JAX-RS JMS 似乎最快的方法是使用本地EJB。但是我不确定JMS。那么WebSocket呢?好吧,人们可能会抱怨这个问题的表述过于宽泛,但提供一个可能的答案也不错 因此,我的建议如下: 只需为模块之间的通信创建一个干净的API,并将其作为JAR部署到服务器上。包含JAX-RS端点的模块还可以实现API,以提供您需要的服务,不仅用于内部使用,还用于RE

我必须使用单个数据库在单个Wildfly容器上运行应用程序。目前,它们是使用JAX-RS相互通信的,我想知道还有更快的方法吗

我已经发现:

JAX-RS

JMS


似乎最快的方法是使用本地EJB。但是我不确定JMS。那么WebSocket呢?

好吧,人们可能会抱怨这个问题的表述过于宽泛,但提供一个可能的答案也不错

因此,我的建议如下: 只需为模块之间的通信创建一个干净的API,并将其作为JAR部署到服务器上。包含JAX-RS端点的模块还可以实现API,以提供您需要的服务,不仅用于内部使用,还用于REST服务,然后REST服务将简单地委托请求处理。现在,您可以在需要内部使用时使用CDI简单地注入服务,据我所知,这是进行内部通信的最快方式,因为它直接与JAVA对象一起工作。使用CDI注入服务实现还具有解耦模块的好处


我希望这有帮助

你看过内存映射文件吗?他们可以提供一些。查看NIO类。对于准备运行的解决方案,请看。

速度/性能将仅通过发送的数据量和并发用户数来衡量。也许我应该将我的问题重新表述为可能的通信方式列表,列出它们的优缺点……方式,方式,waaaaaay是一个太宽泛的问题,我问的不是模块,而是单独的应用程序war文件。实际上,我想在这里说明通过JAX-RS、RMI等进行通信的优缺点。为什么应用程序不能通过API调用进行内部通信?如果定义了描述应用程序服务的API,则部署在同一台计算机上的另一个应用程序可以使用此API调用服务实现。这比通过http调用服务要快得多。你的意思是这样的:通过本地接口EJB进行通信吗?我只是简单地看了一眼,它似乎与我的意思类似,是的。您必须在应用程序和api之间设置jboss模块依赖项。。。然后一切都应该通过注射来实现。我们就是这样做的,而且效果很好。