2020年10月27日16:49:33
环境php 7.3 laravel 8
kafka版本 kafka_2.13-2.6.0.tgz
扩展https://github.com/arnaud-lb/php-rdkafka
其他的php扩展不是很久没更新就是扩展关系乱七八糟,建议使用rdkafka
http://pecl.php.net/package/rdkafka 有编译好的dll扩展
官方文档 https://arnaud.le-blanc.net/php-rdkafka-doc/phpdoc/book.rdkafka.html 需要FQ
kafka中文文档
https://kafka.apachecn.org/documentation.html
https://www.orchome.com/472
相关概念理解
https://www.cnblogs.com/rickiyang/category/1487719.html
注意: 将其中php_rdkafka.dll放入php目录下的ext文件夹内,librdkafka.dll放入php根目录下,然后修改php.ini,添加:
extension=php_rdkafka.dll
php -m和phpinfo()都需要验证是否安装成功
代码:
KafkaProducerService
<?php namespace App\Service; use RdKafka\Conf; use RdKafka\Producer; class KafkaProducerService { public static function doTask() { $conf = new Conf(); // $conf->set('log_level', (string) LOG_DEBUG); // $conf->set('debug', 'all'); $rk = new Producer($conf); $rk->addBrokers('172.18.0.105'); $topic = $rk->newTopic('zx'); $topic->produce(RD_KAFKA_PARTITION_UA, 0, "Message 222222222222"); $rk->poll(1); } }