有人使用过 nmred/kafka吗 有关nmred/kafka的问题

consumer.php

$logger = new Logger('my_logger');
// Now add some handlers
// $logger->pushHandler(new StdoutHandler());
$config = \Kafka\ConsumerConfig::getInstance();
$config->setMetadataRefreshIntervalMs(10000);
$config->setMetadataBrokerList('127.0.0.1:9092');
$config->setGroupId('test');
$config->setBrokerVersion('0.10.2.1');
$config->setTopics(array('test'));
$config->setOffsetReset('earliest');
$consumer = new \Kafka\Consumer();
$consumer->setLogger($logger);
$consumer->start(function($topic, $part, $message) {
    var_dump($message);
});

producer.php

$config = \Kafka\ProducerConfig::getInstance();
$config->setMetadataRefreshIntervalMs(10000);
$config->setMetadataBrokerList('127.0.0.1:9092');
$config->setBrokerVersion('0.10.0.1');
$config->setRequiredAck(1);
$config->setIsAsyn(false);
$config->setProduceInterval(500);
$producer = new \Kafka\Producer(function() {
    return array(
        array(
            'topic' => 'test',
            'value' => 'dgjll90',
            'key' => '',
        ),
    );
});
$producer->setLogger($logger);
$producer->success(function($result) {
    var_dump($result);
});
$producer->error(function($errorCode) {
    var_dump($errorCode);
});
$producer->send(true);

生产者是没有问题的,能正常发送
但是消费者(consumer)始终得不到数据,查看日志,发现,到最后一直循环
my_logger.DEBUG: Start Request ClientId: kafka-php ApiKey: HeartbeatRequest ApiVersion: 0 [] []
这句话

但有的时候又能正常返回数据,但一般几率很小,差不多10几次一次能正常返回,其他时候就是一直循环上面那句话

求解答

阅读 8.3k
2 个回答

我也遇到类似问题 题主是否同时发现 CPU的占用变成了接近100%?

我这边因为kafka在内网部署 所以断开VPN后 这个问题必现

运行超过10分钟 也变成了必现

之前尝试过,这个包不稳定不健全不建议使用

你可以使用rdkafka,当然文档也不是很全,不过基本生产和消费不成问题

具体你可以参考这个文章:https://segmentfault.com/a/11...

宣传栏