首页 > 解决方案 > 如何远程向kafka发送消息

问题描述

我对卡夫卡很陌生。我正在尝试从本地机器生产者向 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);

metadataBrokerList输出:- 致命错误:在第 193 行 C:\xampp\htdocs\vendor\nmred\kafka-php\src\Kafka\Producer\Process.php 中未捕获异常 'Kafka\Exception' 并带有消息 'Not has broker can connection '

标签: phpapache-kafkakafka-producer-api

解决方案


这是我在 codeigniter 中为生产者使用的库https://github.com/weiboad/kafka-php 。这个库工作正常。问题是服务器端口号已更改,实际上是 29092,默认情况下端口是 9092,这就是连接失败的原因。


推荐阅读