rocketmq批量消费
生活随笔
收集整理的這篇文章主要介紹了
rocketmq批量消费
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
rocketmq默認就是可以批量消費的,但需要設置多個參數一起配合。
我們只需要知道他是怎么消費的,就可以很精準的設置他的批量消費參數。
我們看看DefaultMQPushConsumer源碼中的這幾個參數:
/*** 消費消息線程,最小數目*/private int consumeThreadMin = 20;/*** 消費消息線程,最大數目*/private int consumeThreadMax = 64;/*** 拉消息間隔,如果為了降低拉取速度,可以設置大于0的值*/private long pullInterval = 0;/*** 消費一批消息,最大數*/private int consumeMessageBatchMaxSize = 1;/*** 拉消息,一次拉多少條*/private int pullBatchSize = 32;rocketmq的批量消費,簡單來說就是開了一個線程池,啟動多個線程去拉數據,再回調Listener去處理。
consumeThreadMin和consumeThreadMax是這個線程池的最大最小線程數,通過設置這個可以控制每次處理的線程數。
pullInterval可以理解為可調度線程池的時間參數,單位是毫秒。設置這個是為了降低消費的次數,從而達到每批消費的個數都比較多。如果本來量就很大,就沒必要設置這個值了。
consumeMessageBatchMaxSize是一個最大消費限制參數,取值范圍是[0,1024],也就是說,rocketmq線程池中的每一個線程,一次只能拿出1024條數據。所以如果想設置批量消費,這個值也要調大。
pullBatchSize是設置一次拉多少條,很好理解。
總結
所以說,讓rocketmq批量消費,至少需要這幾個值協同處理。
舉個例子(pull模式并發消費):
這個就是降低線程數,從而提升每次拉起的數據。
在沒有這樣配置之前,每次處理就是一條,配置了這個,每次處理就變成幾十條或幾百條。
總結
以上是生活随笔為你收集整理的rocketmq批量消费的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [转载] --- 让线程按顺序执行8种方
- 下一篇: 现代软件工程系列 结对编程 两周写好3D