我写了一个生产者,它可以在23秒内发送超过12,000条消息,但是我的消费者似乎每分钟只能收到6000条消息。
我添加了指标插件来关注该队列中已确认的消息数量,但每分钟仅增加6k消息
2019-10-23 11:09:46,815 INFO [io.micrometer.core.instrument.logging.LoggingMeterRegistry] artemis.messages.acknowledged{address=my.controller.queue,broker=0.0.0.0,queue=my.controller.queue} value=40156
2019-10-23 11:10:46,818 INFO [io.micrometer.core.instrument.logging.LoggingMeterRegistry] artemis.messages.acknowledged{address=my.controller.queue,broker=0.0.0.0,queue=my.controller.queue} value=46157
以上日志的message.count如下
2019-10-23 11:09:46,818 INFO [io.micrometer.core.instrument.logging.LoggingMeterRegistry] artemis.unrouted.message.count{address=my.controller.queue,broker=0.0.0.0} value=2
2019-10-23 11:10:46,815 INFO [io.micrometer.core.instrument.logging.LoggingMeterRegistry] artemis.delivering.durable.message.count{address=my.controller.queue,broker=0.0.0.0,queue=my.controller.queue} value=0
我有以下连接URL参数:
?minLargeMessageSize=10485760;compressLargeMessages=true;producerWindowSize=-1;reconnectAttempts=-1;confirmationWindowSize=1048576&consumerWindowSize=-1&throttleRate=-1&consumerMaxRate=-1
答案 0 :(得分:0)
我能够弄清楚节流的原因。在我们的框架代码中,我们设置
com.google.common.util.concurrent.RateLimite outboundRateLimiter
至100
所以每分钟只有100*60=6000
,消息每分钟发送出去。