我对卡夫卡很陌生。我正在尝试从本地机器生产商向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中未捕获的异常“ Kafka \ Exception”,消息为“没有代理可以连接metadataBrokerList
”第193行
答案 0 :(得分:0)
因此,您要尝试从本地计算机到另一台服务器生产?在这种情况下,您需要更新行
$config->setMetadataBrokerList('localhost:9092');
指向该服务器的域名而不是localhost:9092
答案 1 :(得分:0)
这是我在codeigniter中用于生产者的库https://github.com/weiboad/kafka-php。 该库工作正常。 问题是服务器端口号已更改,默认情况下实际上是29092,连接失败的原因是端口9092。