php rdkafka实例,linux下php扩展kafka的实例分享

本文主要和大家分享linux下php扩展kafka的实例,希望能帮助到大家。

1、安装librdkafkawget https://github.com/edenhill/librdkafka/archive/master.zip #下载

mv master.zip librdkafka-master.zip #修改包名

unzip librdkafka-master.zip #解压

cd librdkafka-master #进入安装文件夹

./configure #配置

make #编译

make install #安装

2、安装phpkafkacd /usr/local/src #进入安装包存放目录

wget https://github.com/EVODelavega/phpkafka/archive/master.zip #下载

mv master.zip phpkafka-master.zip #修改包名

unzip phpkafka-master.zip #解压

cd phpkafka-master #进入安装文件夹

/usr/local/php/bin/phpize #加载php扩展模块

./configure --enable-kafka --with-php-config=/usr/local/php/bin/php-config #配置

make #编译

make install #安装

3、修改php配置文件

vi /usr/local/php/etc/php.ini

打开php配置文件,在最后一行添加下面的代码extension="kafka.so"

:wq! #保存退出

4、测试

以下代码,保存为phpinfo.php<?php

phpinfo();

?>

有kafka模块

这是生产者$kafka = new Kafka("localhost:9092");

$partitions = $kafka->getPartitionsForTopic('testkk');

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

while (true) {

echo "\nEnter comma separated messages:\n";

$messages = explode(',', fgets($in));

foreach (array_keys($messages) as $k) {

//$messages[$k] = trim($messages[$k]);

}

$bytes=$kafka->produce("testkk", "kkkkkkk");

printf("\nSuccessfully sent %d messages (%d bytes)\n\n", count($messages), $bytes);

}

相关推荐:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你好!要在 PHP 中消费 Kafka 消息,你可以使用 rdkafka 扩展。以下是一个简单的示例代码,演示如何使用 rdkafka 消费 Kafka 消息: ```php <?php $conf = new RdKafka\Conf(); $conf->set('group.id', 'your-consumer-group-id'); $consumer = new RdKafka\KafkaConsumer($conf); $consumer->subscribe(['your-topic']); while (true) { $message = $consumer->consume(1000); // 等待一秒钟来获取消息 switch ($message->err) { case RD_KAFKA_RESP_ERR_NO_ERROR: // 成功接收到消息 echo $message->payload . PHP_EOL; break; case RD_KAFKA_RESP_ERR__PARTITION_EOF: // 所有分区上的消息已被消费完毕,等待更多消息 break; case RD_KAFKA_RESP_ERR__TIMED_OUT: // 等待超时 break; default: // 其他错误 echo '错误:' . $message->errstr() . PHP_EOL; break; } } ?> ``` 在上面的示例中,我们首先创建了一个 KafkaConsumer 对象,并设置了消费者组的 ID。然后通过调用 `subscribe` 方法订阅了要消费的主题。接下来,我们使用一个无限循环来不断尝试获取消息,并根据返回的错误代码进行相应的处理。 对于成功接收到的消息,你可以在 `echo` 语句中执行你的自定义逻辑。当所有分区上的消息都被消费完毕时,`RD_KAFKA_RESP_ERR__PARTITION_EOF` 错误代码会被触发,你可以根据需要进行处理。而 `RD_KAFKA_RESP_ERR__TIMED_OUT` 错误代码表示等待超时。 请注意,你需要先安装并启用 rdkafka 扩展,以便在 PHP 中使用它。你可以从 pecl 或源代码进行安装。希望这可以帮助到你!如果有任何问题,请随时问我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值