关于prefrech的疑问。
来源:4-7 消费端限流机制
慕沐3053333
2021-05-14
假如设置了prefrech为10,消费者1订阅的是队列a。队列a把10条消息推给消费者1,那消费者1对于这10条消息是在内存里也有一个队列用于存储这10条消息,然后一个一个消费处理,还是会用多个线程并发地去处理呢?
所以我的疑问简而言之就是两个
1、消费者内存是否有一个队列用于存储消息?
2、是一个一个处理消息,还是用多个线程并发地去处理?
写回答
2回答
-
Moody
2021-05-14
我又查了一下代码,之前回答的应该是说错了-_-,我再重新讲下:
不管是否开启限流,不论是不是用SpringAMQP,本地都有一个缓存队列,缓存收到但是还未处理的消息。
不开启限流时,消息确实已经推到消费者内存中的的缓存队列里了。
开启限流时,只会推有限个数的消息到消费者内存中的的缓存队列里。
112021-05-14 -
Moody
2021-05-14
现在没有,下一章就有了,具体看5-8节。SpringAMQP在本地做了一个队列用于缓存消息。
目前是你自己控制的,业务不做多线程就是单线程的。第五章用SpringAMQP就可以自己配置线程数。
152022-10-04
相似问题
关于线程池的疑问
回答 1
关于DlxListener的疑问
回答 1