7

我在 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 连接器并使用它在同一服务器中的应用程序之间发送消息。正如我所说,这只是一个想法。

4

2 回答 2

2

关于 VM 作为应用间通信的使用,只有 MuleSoft 可以回答 VM 是否具有未来的功能。

我认为这与 ESB 原则并不矛盾。“容器”特性在 David A Chappell 的“企业服务总线书”第 6 章中有很好的定义。容器应该尽量保持应用程序隔离。

这将提供一些好处,例如“可独立部署的集成服务”(同一章)、更容易的集群化和其他好处。

您应该处理相同的 VM 应用间通信,就好像它们位于不同服务器中的应用之间一样。

于 2013-02-24T22:05:22.987 回答
0

似乎 Mule 在 3.5 版本中添加了一个功能,可以在同一服务器中部署的应用程序之间进行通信。但共享 VM 连接器仅在企业版中可用。信息: http: //www.mulesoft.org/documentation/display/current/Shared+Resources#SharedResources-DefiningDomains

示例:http: //blogs.mulesoft.org/optimize-resource-utilization-mule-shared-resources/

于 2014-08-25T21:19:23.030 回答