美文网首页
Spring Boot RabbitMq The channel

Spring Boot RabbitMq The channel

作者: 大继 | 来源:发表于2020-11-26 18:52 被阅读0次

    问题

    在做rabbit性能测试的时候,出现
    The channelMax limit is reached. Try later.

    解决

    需要修改 /etc/rabbitmq/rabbitmq.conf 自行创建

    #0 意味着无限制
    channel_max=0
    

    service rabbitmq-server restart

    但是 , spring boot 最大限制channel也是 2074

    另辟蹊径

    加入cache. connection.size: 100链接数 1024 *0.9
    cache. connection: connection

    rabbitmq:
        host: 192.168.0.111
        port: 5672
        username: admin
        password: 123456
        #虚拟host 可以不设置,使用server默认host
        virtual-host: /
        publisher-returns: true
        publisher-confirm-type: correlated
        template:
          mandatory: true #路由不可达的消息会被监听到,不会被自动删除
        # 打开消息确认机制
        listener:
          simple:
            acknowledge-mode: manual
            retry:
              enabled: true
        cache:
          connection:
            size: 500 #缓存的连接数,只有是CONNECTION模式时生效 默认最大链接数 1024 *0.9
            mode: connection
    

    测试结果

    10W条数据 10个线程 33秒
    

    总结,

    channel模式 秒并单链接发可以到达 约 1000多/s 再高就要The channelMax limit is reached.
    connection模式 200 链接 10线程 大概也是 在 3000多/s 左右,
    因为开了callback 如果关闭估计会更高 。
    也就是说单机情况 3000 基本是极限了(不是推荐链接模式)
    超过1000就要开始考虑别的形式了。集群或kafka了

    我看别人比较好的机器可以测试到8.5K/s ,24核64G内存那种。 我这个使用了内网不是本机
    在加上有一定的事务估计去掉也很接近了。

    相关文章

      网友评论

          本文标题:Spring Boot RabbitMq The channel

          本文链接:https://www.haomeiwen.com/subject/edeziktx.html