如何实现 Mule 消息观察者?

Posted

技术标签:

【中文标题】如何实现 Mule 消息观察者?【英文标题】:How to implement a Mule Message Observer? 【发布时间】:2012-11-01 22:33:36 【问题描述】:

我试图在 Mule 上实现一个不需要改变消息的简单消息观察器。

文档中的 link 说最简单的方法是扩展 AbstractMessageObserver。但正如我在this link 上看到的那样,该类已在早期版本的 Mule 中被删除。

那么,现在最好的方法是实现 MessageProcessor 接口并在 process 方法中简单地返回 MuleEvent 参数?

【问题讨论】:

【参考方案1】:

如果您需要访问整个MuleEvent,可以是MessageProcessor,也可以是实现Callable 的POJO。

否则,如果您只需要观察负载,一个简单的 POJO 组件就可以解决问题。

请注意,Mule 还提供拦截器(和 InterceptingMessageProcessors):如果您需要在操作之前/之后运行,或者如果您希望停止处理,请使用拦截器。

【讨论】:

非常感谢。我正在使用 MessageProcessor 解决方案。 实现 MessageProcessor 接口和实现 callable 的 pojo 有什么区别(在性能、调优、行为等方面)? 在使用通过<component> 调用的 POJO 时会有一点开销,因为它通过入口点解析器机制。如果您使用<invoke> 调用您的 POJO,它在开销方面将非常接近自定义消息处理器。但总而言之,这种开销通常比花在 IO 上的时间少几个数量级,后者是集成流程的主体。

以上是关于如何实现 Mule 消息观察者?的主要内容,如果未能解决你的问题,请参考以下文章

Mule Anypoint 在消息上设置入站属性

如何在 Mule 中设置 ActiveMQ 消息头?

如何在 Mule 4 中通过 ActiveMQ 传递属性

如何在 Mule XA 事务中为 ActiveMQ 启用 RedeliveryDelay

从 mule 中的队列/主题中读取消息

如何将 EJB 连接到 Mule?