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);

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

4

2 回答 2

0

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

于 2019-11-21T11:45:03.110 回答
0

所以你想从你的本地机器生产到不同的服务器?如果是这种情况,您需要更新该行

$config->setMetadataBrokerList('localhost:9092');

指向该服务器的域名而不是localhost:9092

于 2019-11-18T17:53:07.540 回答