rabbitMQ消费吞吐性能调优-个人实践记录

    技术2022-07-10  133

    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
    Processed: 0.008, SQL: 9