1.增加消费者个数,每个消费者1个通道(SimpleMessageListenerContainer)
container.setConcurrentConsumers(5); container.setMaxConcurrentConsumers(50);2.调整批量获取消息条数
container.setPrefetchCount(500);3.打开批量Ack
//处理完消息后返回 channel.basicAck(deliveryTag, true); //确认成功,队列会删除该消息,true表示打开批量Ack4.消费处理多线程处理(和增加消费者个数思路类似,每个消费者一个通道会比这个效率高)
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