我在 MULE 上探索了网络,并了解到应用程序之间的通信——即使它们部署在同一个 Mule 实例中——它们也必须使用 TCP、HTTP 或 JMS 传输。
不支持虚拟机。
然而,我发现这与 ESB 原则有点矛盾。理想情况下,我们应该能够在 ESB 中定义端点并使用任何传输连接到该端点?我可能错了。此外,由于所有应用程序都共享同一个 JVM,因此人们希望能够通过内存中的 VM 队列进行通信,而不是依赖于无事务 HTTP 协议或 TCP,其中可以建立的连接数取决于服务器资源。即使对于 JMS,我们也需要定义和管理另一个队列以及可能影响性能的大量使用。虽然我同意如果我们有分布式和集群系统,HTTP 或 JMS 将是唯一的选择。
是否有任何计划将 VM 合并为应用程序间通信协议,或者是否有任何其他方式可以让一个 Flow 与另一个 Flow Endpoint 通信但在不同的应用程序中?
编辑: - Mulesoft 的回答
http://forum.mulesoft.org/mulesoft/topics/concept_of_endpoint_and_inter_app_communication
是的,我们正在考虑未来版本的应用间通信。仍然不清楚我们何时会这样做,但我们对我们希望此功能如何表现有一些想法。我们可能会创建一个服务器级配置,您可以在其中定义要在所有应用程序中使用的资源。在那里,您将能够定义一个 VM 连接器并使用它在同一服务器中的应用程序之间发送消息。正如我所说,这只是一个想法。