Mule在同一实例中的应用程序间通信



我已经在MULE上探索了web,并了解到应用程序之间的通信——即使它们部署在同一个MULE实例中——它们也必须使用TCP、HTTP或JMS传输。

不支持VM。

然而,我发现这与ESB原则有点矛盾。理想情况下,我们应该能够在和ESB中定义端点,并使用任何Transport?我可能错了。此外,由于所有应用程序都共享同一JVM,因此人们希望能够通过内存中的VM队列进行通信,而不是依赖于无事务HTTP协议或TCP,其中可以建立的连接数量取决于服务器资源。即使对于JMS,我们也需要定义和管理另一个队列,以及可能影响性能的大量使用。尽管我同意,如果我们有分布式和集群系统,HTTP或JMS将是唯一的选择。

是否有任何计划将VM作为应用程序间通信协议,或者是否有任何其他方式可以使一个流与另一个流端点在不同的应用程序中通信?

编辑:-Mulesoft的回答http://forum.mulesoft.org/mulesoft/topics/concept_of_endpoint_and_inter_app_communication
是的,我们正在考虑未来发布的应用程序间通信。目前还不清楚我们什么时候会这样做,但我们对这个功能的表现有一些想法。我们可能会创建一个服务器级配置,您可以在其中定义要在所有应用程序中使用的资源。在那里,你可以定义一个虚拟机连接器,并使用它在同一服务器中的应用程序之间发送消息。正如我所说,这只是一个想法

关于虚拟机作为应用程序间通信的使用,只有MuleSoft可以回答虚拟机是否会有未来的功能。

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

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

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

Mule似乎在3.5版本中添加了一项功能,该功能可以实现部署在同一服务器中的应用程序之间的通信。但是共享虚拟机连接器仅在企业版中可用。信息:http://www.mulesoft.org/documentation/display/current/Shared+资源#共享资源定义域

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

最新更新