java - 统计 Mule 流处理的请求数

标签 java spring mule

我正在使用 Mule ESB 3.4。我想开发一个自定义 Java 组件来计算流收到的请求数量。流程将例如像这样:

http inbound-endpoint -> counter -> vm-outbound-endpoint

首先,包含计数器的实际变量应该存储在内存中。然后它可能会被打印到日志或插入到数据库中(现在并不重要)。我追求的是一个干净的设计,稍后我可以重新使用它来存储更​​复杂的应用程序全局状态(基于接收到的消息的数量和内容)并实现更复杂的逻辑。

最佳答案

这个问题的解决方案是将计数器变量创建为单例 Spring bean(例如 java.util.concurrent.atomic.AtomicInteger 类),然后通过 Spring 将其再次注入(inject)到自定义 Mule 组件中。该组件可以使用原型(prototype)范围进行定义,并且可以在每次消息遍历它时安全地运行 counter.incrementAndGet() 之类的东西。通过这种方式,计数器将在任何时候保存通过流的消息数量。

由于 Spring bean 可以是您喜欢的任何 POJO,因此您可以轻松扩展此设计以允许存储更复杂的状态。存储的对象当然必须公开线程安全操作。

关于java - 统计 Mule 流处理的请求数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21709931/

相关文章:

sql - 如何使用 Groovy 从 Oracle 获取光标?

Java ATM 项目逻辑错误

java - hibernate保存中的可序列化字符串(对象实体,可序列化id)

java - 如何从某个位置开始迭代二维数组?

java - Spring-Data-MongoDB:使用自定义转换器升级到 2.0.7 后无法从类型转换

java - Spring Boot 搜索两个日期之间的数据

jaxb - 骡问题 : More than one JAXBContext

骡子测试最佳实践和功能与单元

java - 从 HTML - <select>--</select> 框中获取选定值

java - Java 中毕达哥拉斯树的可视化表示