首页 新闻 会员 周边 捐助

rabbitmq支持批量读取消息吗

0
悬赏园豆:200 [已解决问题] 解决于 2015-09-08 17:43

问题大概是这样:

消息一条一条从队列中读取出来马上写入数据库,这样太过于频繁,造成数据库压力有点大,我想的是批量读取消息然后批量写入数据库。

 

问题是 rabbitmq支持批量读取消息吗?

 

google了不少资料,都讲到rabbitMQ支持对消息的可靠的传递,支持事务,不支持批量的操作?

是我姿势不对?求解!!

是奉壹呀的主页 是奉壹呀 | 初学一级 | 园豆:4
提问于:2015-08-31 16:55
< >
分享
最佳答案
0

可以批量读取的。看你用客户端吧,队列有一个Prefetch count参数,就是一次读取多少条

收获园豆:150
吴瑞祥 | 高人七级 |园豆:29449 | 2015-08-31 17:06

谢谢回复。prefetchCount 这个属性有配置过,但是没有效果,查资料解释为在被消费的消息被确认之前,可以继续发送的消息数?

 

可能是我理解和代码的问题。我再试试看,谢谢回复!

是奉壹呀 | 园豆:4 (初学一级) | 2015-08-31 17:16

@我从二院来: 我用的easyq客户端,,他默认就是同时读取50个消息,然后本地应该是有50个线程来处理这50个消息,不是在同一个线程

吴瑞祥 | 园豆:29449 (高人七级) | 2015-08-31 18:24

@吴瑞祥: 最终改了源友,通过改动BatchSimpleMessageListenerContainer类,配合Prefetch做到了批量写入和读取

是奉壹呀 | 园豆:4 (初学一级) | 2015-09-08 17:42
其他回答(1)
0

所提供接口应不支持批量,这样对于rabbitMQ所关注的可靠传递目标有所违背。
但也不用担心性能问题,记得Prefetch可以设置预读条数。

收获园豆:50
三人之行,必有我师 | 园豆:291 (菜鸟二级) | 2015-09-01 14:08

可以通过改动BatchSimpleMessageListenerContainer类,配合Prefetch可以做到批量写入和读取

支持(0) 反对(0) 是奉壹呀 | 园豆:4 (初学一级) | 2015-09-08 17:42
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册