php-rdkafka测试笔记

4-09 1,474 views

参考:https://learnku.com/articles/15176/laravel-implementation-of-kafka-message-push-and-receive-processing

安装

安装librdkafka 库
git clone https://github.com/edenhill/librdkafka.git
./configure
make
sudo make install
安装rdkafka
sudo pecl install rdkafka
配置扩展到php.ini
extension=rdkafka.so

测试

<?php
#写代码测试
$conf = new \RdKafka\Conf();
// enable debug mode
$conf->set('log_level', LOG_DEBUG);
$conf->set('debug', 'all');
$rk = new \RdKafka\Producer($conf);
$rk->addBrokers("192.168.5.170:9092,192.168.5.99:9092");

$topic = $rk->newTopic("php_topic");

$topic->produce(RD_KAFKA_PARTITION_UA, 0, "Message payload");

$producer = new \RdKafka\Producer();
$producer->addBrokers("192.168.5.170:9092,192.168.5.99:9092");

$obj_topic = $producer->newTopic("php_topic");

//
$input_handler = fopen('php://stdin', 'r');

while (true) {
    echo "\nPlease input  messages:\n";
    $payload = trim(fgets($input_handler));

    // empty message will be quit
    if (empty($payload)) {
        break;
    }

    // send message
    $obj_topic->produce(RD_KAFKA_PARTITION_UA, 0, $payload);
}

echo "done\n";
exit(0);

使用方法

https://www.jianshu.com/p/e4bc3f56354d

解决 laravel-admin between datetime 假如数据库是时间戳int类型无法筛选。

laravel-admin默认的between->datetime(),查询默认是datetime类型,但是假如数据库是时间戳类型就会报错,又不想改底层文件的话可以试试加自定义筛选功能...

阅读全文

php解析英文语句,自动分解。

参考:https://www.php.net/manual/en/function.str-split.php 最近碰到一个问题,客户的英文地址太长,超出接口api字段长度,所以需要解析下语句分解发送。 ...

阅读全文

记录一个laravel-excel导出表格值为0导出excel显示空的解决方法。

最近在使用laravel-excel导出表格的时候,发现假如字段值为0的情况下,导出的excel中直接显示为空,找到一个方法解决,如下. 在laravel-excel的config配置中...

阅读全文

欢迎留言