Mule 组件交互 - 基于消息?
Posted
技术标签:
【中文标题】Mule 组件交互 - 基于消息?【英文标题】:Mule components interaction - message based? 【发布时间】:2017-06-26 07:45:22 【问题描述】:我有一个关于 Mule ESB 的架构问题。他们说 ESB(如 Mule)有助于实现基于消息传递(如 JMS)的松散耦合和高度可扩展的集成。 Mule 也是基于消息源、消息转换器、消息路由器的。
所以我的问题是 Mule 流中的所有这些 Mule 组件如何相互通信?他们是否也在内部使用消息队列来使其具有高度可扩展性?
有人可以提供一些启示或分享任何参考链接吗?
谢谢
【问题讨论】:
从阅读这个***.com/questions/2705043/…开始 感谢@ELaRoche .. 它很好地解释了所有概念.. 但我的问题是 mule 流中各种 mule 组件之间的交互是否基于 JMS? 这可能也有帮助 github.com/mulesoft/mule 因为 mule 是开源的,您可以下载并查看。但是,是的,Mule 确实实现了一个消息队列。这有更多关于它如何实现的信息是mulesoft.com/resources/esb/enterprise-messaging-system-ems 谢谢,我会详细查看 EMS 链接。我快速浏览了一下,上面写着“Mule 支持 JMS 交付传输” .. 这意味着您可以在您设计的流程中使用 JMS 队列,但它没有说明流程中 mule 组件的任何位置,例如转换器、webservice 消费者等在内部使用 JMS 相互通信以处理消息。这就是我想要弄清楚的。我正在做更多的阅读.. 仍然找不到任何关于此的具体信息.. 【参考方案1】:“Mulesoft 在其高可用性集群中使用 Hazelcast。
集群是一组作为一个单元的 Mule 实例。换句话说,集群是由多个节点组成的虚拟服务器。集群中的服务器通过分布式共享内存网格进行通信和共享信息。这意味着数据在不同物理机的内存中复制。
如果一个节点由于故障或计划停机而变得不可用,集群中的另一个节点可以承担工作负载并继续处理现有事件和消息。从技术上讲,它们将所有 MuleESB 消息存储在 Hazelcast Map 和 Queus 中。这样他们保证不会丢失消息。他们也使用 XA 事务。”
Mulesoft 以前使用 Gigaspaces。
来源:https://hazelcast.org/messagingesb/
您可以在实例启动期间看到引用 hazelcast 的日志。
【讨论】:
以上是关于Mule 组件交互 - 基于消息?的主要内容,如果未能解决你的问题,请参考以下文章
重新传递 Mule ESB 处理的失败的 activemq jms 消息时保留异常原因