【问题标题】:Spring Integration - Maximum Throughput ConsumerSpring Integration - 最大吞吐量消费者
【发布时间】:2012-07-05 22:19:09
【问题描述】:

Spring Integration 元素的哪些配置(如果有)将支持以下模型:

  • 一个消息队列,代表传入的工作
  • 从该队列读取的多个消费者(一条消息只需要转到一个 消费者)
  • 每个消费者只有在无事可做时才进行轮询;如果它当前正在处理消息,则不要轮询。如果没有工作,则每隔 X 秒轮询一次以查看是否有新工作到达。

【问题讨论】:

    标签: spring message-queue messaging spring-integration event-driven-design


    【解决方案1】:

    假设您的意思是 JMS,

    <jms:message-driven-channel-adapter/>
    

    查看concurrent-consumers、max-concurrent-consumers、idle-consumer-limit、idle-task-execution-limit等属性。

    消费者管理全部由底层核心 Spring DefaultMessageListenerContainer 完成。

    【讨论】:

    • 嗨,加里,感谢您的回答。我对消息基础设施的通道适配器的理解是,通道适配器会竞相拉下尽可能多的消息并将它们放置在 Spring Integration 的“内部”队列中,而不是以下游服务正在消耗它们?
    • 否;您可以使用 concurrent-consumers 属性控制消耗率;只要您在 SI 配置中不使用异步切换(仅直接通道),就没有“内部”队列。
    猜你喜欢
    • 2020-10-13
    • 2013-04-16
    • 2022-01-22
    • 2015-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多