Spring integration Spring集成DSL在流之间收集度量
我正在将Spring Integration DSL与ActiveMQ一起用于并发消费者,并尝试调整Spring IntegrationFlows的指标,该流程使用直接通道和路由器相互交互 典型的集成流程如下所示:Spring integration Spring集成DSL在流之间收集度量,spring-integration,spring-integration-dsl,Spring Integration,Spring Integration Dsl,我正在将Spring Integration DSL与ActiveMQ一起用于并发消费者,并尝试调整Spring IntegrationFlows的指标,该流程使用直接通道和路由器相互交互 典型的集成流程如下所示: -> InboundFlow1 -> Transformer| ActiveMQ Broker ->JMS InboundAdapter -> Router |
-> InboundFlow1 -> Transformer|
ActiveMQ Broker ->JMS InboundAdapter -> Router | -> OutboundFlow -> JMS OutboundAdapter
-> InboundFlow2 -> Transformer|
每个流包含入站JMS适配器、路由器、筛选器、转换器和出站JMS网关
有没有办法从InboundAdapter到OutboundAdapter收集这些指标:
- 每秒的消息量李>
- 消息的总量李>
- 通过流的最小传输时间李>
- 通过流的最大传输时间李>
- 通过流传输的平均时间李>
- 错误消息的数量李>
- 处理消息的持续时间李>
但是它们没有包含所需的功能。除了第一个和最后一个之外,所有的东西都存在;第一种是可以导出的;最后一种方法意味着为每条消息捕获它,这将非常昂贵 然而,SpringIntegration5.0.4现在除了支持这些标准度量之外,还支持其他度量 编辑 此外,如果标准度量不能满足您的需要,您始终可以添加自定义度量工厂
只需编写自己的
AbstractMessageHandlerMetrics
子类即可捕获所需内容。谢谢您的回答Gary,是否认为spring的版本也应该更新?是的,spring Integration 5.0.x需要spring Framework 5.0.x。不幸的是,到spring 5的迁移并不像预期的那样简单。您能否添加一个示例,如何计算流执行的总消耗时间?如果有任何示例,我将不胜感激。使用spring集成示例,我无法找出如何以最佳方式完成此任务count*(average)duration
请记住,平均持续时间会随着时间和消息而衰减,因此只有在消息到达率和处理时间相当恒定的情况下,此任务才有意义。如果标准度量不能满足您的需要,您可以添加自定义度量工厂。