我编写了一个生产者,它在大约23秒内发送了12000多条消息,但我的消费者似乎每分钟只收到6k条消息。
我添加了度量插件来关注队列中确认的消息数量,但每分钟只增加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.以上日志的计数如下
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
我能够找出节流的原因。在我们的框架代码中,我们设置了
com.google.common.util.concurrent.RateLimite outboundRateLimiter
至100
所以每分钟只有100*60=6000
,每分钟都有消息传出。