RdKafka 之 调用 produce 方法之后, 响应很慢
<?php
header("Content-type: text/html; charset=utf-8"); //指定编码
ini_set("date.timezone", "Asia/Shanghai"); //设置时间区域
echo "start_time[".microtime()."]: " . date('Y-m-d H:i:s', time()) . "<br/>" . PHP_EOL;
try{
//$rcf = new RdKafka\Conf();
//$rcf->set('group.id', 'test');
//$cf = new RdKafka\TopicConf();
//$cf->set('offset.store.method', 'broker');
//$cf->set('auto.offset.reset', 'smallest');
$rk = new RdKafka\Producer();
echo "guocheng_time-1[".microtime()."]: " . date('Y-m-d H:i:s', time()) . '<br/>' . PHP_EOL;
$rk->setLogLevel(LOG_DEBUG);
$rk->addBrokers("localhost");
$topic = $rk->newTopic("test_01");
echo "guocheng_time-2[".microtime()."]: " . date('Y-m-d H:i:s', time()) . '<br/>' . PHP_EOL;
//for ($i = 0; $i < 100; $i++) {
$msg = "test Message : " . date('Y-m-d H:i:s');
$rs = $topic->produce(RD_KAFKA_PARTITION_UA, 0, $msg);
echo "guocheng_time-3[".microtime()."]: " . date('Y-m-d H:i:s', time()) . '<br/>' . PHP_EOL;
//var_dump($rs);
//}
} catch(Exception $e){
echo $e->getMessage();
echo "guocheng_time-4[".microtime()."]: " . date('Y-m-d H:i:s', time()) . '<br/>' . PHP_EOL;
}
echo "end_time[".microtime()."]:" . date('Y-m-d H:i:s', time()) . '<br/>' . PHP_EOL;
exit();
?>
$rs = $topic->produce(RD_KAFKA_PARTITION_UA, 0, $msg); 调用该方法之后, 会等比较长的时间程序才会结束; 屏蔽之后就会很快的结束;
环境是centos 上搭建的nginx+php ; kafka 版本: kafka_2.11-0.9.0.0
求 解 啊!