[求助] rdkafak 扩展生产者的错误信息回调问题

看如下代码:

<?php

namespace __test__;

use RdKafka\Conf;
use RdKafka\Producer;
use RdKafka\ProducerTopic;

class TestDemo
{
    /** @var Producer */
    private $producer;
    /** @var ProducerTopic */
    public $topicObj;
    private $hash = [];
    private $conf;

    public function __construct()
    {
        $setError = true;
        # 创建kafka连接
        $conf = new Conf();
        $conf->set("compression.codec", "lz4");

        echo "setErrorCb\n";
        if ($setError)
        {
            $conf->setErrorCb(function ($producer, $code, $str) {
                echo date("Y-m-d H:i:s") . "\terror code [{$code}] message = {$str}" . PHP_EOL;
            });
        }

        echo "setErrorCb over\n";
        $producer = new Producer($conf);
        $producer->setLogLevel(LOG_INFO);
        $producer->addBrokers("172.17.20.119:9192,172.17.20.137:9192");
        $topicObj = $producer->newTopic("testDc");
        $hash = ["bb" => $topicObj];
        #$this->hash = $hash;
        echo "send msg \n";
        $topicObj->produce(RD_KAFKA_PARTITION_UA, 0, date("Y-m-d H:i:s") . "\t" . "msg", "kkk");
    }
}

new TestDemo();

上面的代码运行时可以非常正常的产生如下输出

setErrorCb
setErrorCb over
send msg 
2018-11-06 11:55:37 error code [-195] message = 172.17.20.119:9192/bootstrap: Connect to ipv4#172.17.20.119:9192 failed: Connection refused (after 0ms in state CONNECT)
2018-11-06 11:55:38 error code [-195] message = 172.17.20.137:9192/bootstrap: Connect to ipv4#172.17.20.137:9192 failed: Connection refused (after 0ms in state CONNECT)
2018-11-06 11:55:38 error code [-187] message = 2/2 brokers are down

可是如果将$this->hash = $hash;这一句取消注释,或者将$conf$producer$topicObj这三个变量中的任意一个改为$this->conf$this->producer$this->topicObj都无法正常输出,除非再将$setError改为false,有谁知道怎么办么?

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!