Php 如何向卡夫卡远程发送消息

Php 如何向卡夫卡远程发送消息,php,apache-kafka,kafka-producer-api,Php,Apache Kafka,Kafka Producer Api,我对卡夫卡很陌生。我正在尝试将本地机器制作人的消息发送到kafka服务器。我无法弄清楚这个问题或我在做什么 $config = \Kafka\ProducerConfig::getInstance(); $config->setMetadataRefreshIntervalMs(10000); $config->setMetadataBrokerList('localhost:9092'); $config->setBrokerVersion('1.0.

我对卡夫卡很陌生。我正在尝试将本地机器制作人的消息发送到kafka服务器。我无法弄清楚这个问题或我在做什么

$config = \Kafka\ProducerConfig::getInstance();
    $config->setMetadataRefreshIntervalMs(10000);
    $config->setMetadataBrokerList('localhost:9092');
    $config->setBrokerVersion('1.0.0');
    $config->setRequiredAck(1);
    $config->setIsAsyn(false);
    $config->setProduceInterval(500);
    $producer = new \Kafka\Producer(
        function() {
            return [
                [
                  'topic' => 'test',
                  'value' => 'test....message.',
                  'key' => 'testkey',
                ],
            ];
        }
    );
    // $producer->setLogger($logger);
    $producer->success(function($result) {
        print_r($result);
    });
    $producer->error(function($errorCode) {
            var_dump($errorCode);
    });
    $producer->send(true);
输出:-
致命错误:在C:\xampp\htdocs\vendor\nmred\Kafka php\src\Kafka\Producer\Process.php第193行的未捕获异常“Kafka\exception”,消息为“Not has broker can connection
metadataBrokerList
”,所以您试图从本地计算机生成到其他服务器?如果是这种情况,您需要更新线路

$config->setMetadataBrokerList('localhost:9092');
指向该服务器的域名,而不是
localhost:9092

,这是我在codeigniter中为制作人使用的库。 这个图书馆很好用。
问题是,服务器上的端口号已更改,默认情况下端口号为29092。连接失败的原因是端口号为9092。

错误消息的复制和粘贴是否与日志中显示的完全一致?是的,我使用了实际的服务器ip地址,但也不起作用。