php-amqplib调用rabbitMQ 存留大量无用Connections和Channels的解决办法

现有创建的无用连接和信道,可以手动删除或者还原rabbitMQ的配置来全部清除

在后续的使用中则通过代码来创建具有心跳检测的链接对象来处理

在php-amqplib这个组件里默认是不开启keepalive和heartbeat的,需要在创建连接时手动给定,但是这两个参数最好还是每次建立连接时都打开,以免当客户端连接断开后对应的连接和信道一直占用浪费资源(之后还是会建立新建连接和信道,并不会复用)

 

 因为我是以这种方式引用的,所以我找到对应的文件去修改

找到如下文件,修改两个属性的初始值

$keepalive = true,  //启用keepalive
$heartbeat = 1  //启用心跳检测 /秒

\vendor\php-amqplib\php-amqplib\PhpAmqpLib\Connection\AMQPStreamConnection.php

 心跳检测建议15秒,或者根据环境的稳定性来选择,以免因为通讯不稳定造成队列自动自动关闭,我这里是测试环境,所以设置的1秒

public function __construct(
        $host,
        $port,
        $user,
        $password,
        $vhost = '/',
        $insist = false,
        $login_method = 'AMQPLAIN',
        $login_response = null,
        $locale = 'en_US',
        $connection_timeout = 3.0,
        $read_write_timeout = 3.0,
        $context = null,
        $keepalive = true,  //启用keepalive
        $heartbeat = 1  //启用心跳检测
    ) {
        $io = new StreamIO(
            $host,
            $port,
            $connection_timeout,
            $read_write_timeout,
            $context,
            $keepalive,
            $heartbeat
        );

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值