赞
踩
1.增加消费者个数,每个消费者1个通道(SimpleMessageListenerContainer)
container.setConcurrentConsumers(5);
container.setMaxConcurrentConsumers(50);
2.调整批量获取消息条数
container.setPrefetchCount(500);
3.打开批量Ack
//处理完消息后返回
channel.basicAck(deliveryTag, true); //确认成功,队列会删除该消息,true表示打开批量Ack
4.消费处理多线程处理(和增加消费者个数思路类似,每个消费者一个通道会比这个效率高)
5.提高消息处理性能(例:存库时,优化sql或数据库本身的瓶颈)
6.rabbitMQ性能优化
配置消息存放
[root@rabbit1 rabbitmq_server-3.7.25]# vi etc/rabbitmq/rabbitmq.conf
按百分比
disk_free_limit.relative=0.5
或者按固定值
disk_free_limit.absolute=10GB
修改进程数
# vi /etc/profile
增加 ulimit -SHn 65536
# source /etc/profile
重启rabbitMQ
但是系统重启后又恢复默认,还需修改以下文件
# vi /etc/security/limits.conf
#末尾添加如下内容
* soft nofile 65536
* hard nofile 131072
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。