0x01 确定自己的php版本
0x02 下载kafka组件
下载地址 https://pecl.php.net/package/rdkafka
找到对应的版本, 测试了4.x win10的机器, 用代码测试报错, 下载3.1.3的版本 测试正常
根据自己的环境, 下载相应的版本
0x03 安装插件
复制 librdkafka.dll 到F:\phpStudy\PHPTutorial\php\php-7.3.4-nts\目录下
复制php_rdkafka.dll放到 F:\phpStudy\PHPTutorial\php\php-7.3.4-nts\ext目录下
在 php.ini 文件中添加 extension=php_rdkafka.dll
0x04 查看配置
0x05 测试Demo
直接php 执行文件 (搭建自己的zk集群和kafka集群)
生产者
<?php
$rk = new RdKafka\Producer();
$rk->setLogLevel(LOG_DEBUG);
$rk->addBrokers("127.0.0.1");
$topic = $rk->newTopic("test");
for ($i = 0; $i < 10; $i++) {
$topic->produce(RD_KAFKA_PARTITION_UA, 0, "Message $i");
}
消费者
<?php
$rk = new RdKafka\Consumer();
$rk->setLogLevel(LOG_DEBUG);
$rk->addBrokers("127.0.0.1");
$topic = $rk->newTopic("test");
$topic->consumeStart(0, RD_KAFKA_OFFSET_BEGINNING);
while (true) {
$msg = $topic->consume(0, 1000);
if (null === $msg) {
continue;
} elseif ($msg->err) {
echo $msg->errstr(), "\n";
break;
} else {
echo $msg->payload, "\n";
}
}