Kafka 是一个分布式流处理平台,为了使用 Kafka 和 PHP,需要完成以下步骤:
安装 Kafka安装 PHP Kafka 客户端库使用 PHP 连接和操作 Kafka一、安装 Kafka下载 Kafka
你可以从 Kafka 的官方网站下载最新版本:
wget https://downloads.apache.org/kafka/3.4.0/kafka_2.13-3.4.0.tgz
解压 Kafka
tar -xzf kafka_2.13-3.4.0.tgz cd kafka_2.13-3.4.0
启动 Zookeeper(Kafka 依赖 Zookeeper)
bin/zookeeper-server-start.sh config/zookeeper.properties
启动 Kafka 服务
在另一个终端窗口中执行以下命令:
bin/kafka-server-start.sh config/server.properties
创建一个 Kafka 主题
bin/kafka-topics.sh --create --topic test --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1
验证 Kafka
启动一个生产者:
bin/kafka-console-producer.sh --topic test --bootstrap-server localhost:9092
启动一个消费者:
bin/kafka-console-consumer.sh --topic test --bootstrap-server localhost:9092 --from-beginning二、安装 PHP Kafka 客户端库
推荐使用 php-rdkafka 库,这是一个基于 librdkafka 的 PHP 扩展。
安装 librdkafka
在 Debian/Ubuntu 系统上:
sudo apt-get install librdkafka-dev
在 Red Hat/CentOS 系统上:
sudo yum install librdkafka-devel
安装 php-rdkafka 扩展
使用 PECL 安装:
sudo pecl install rdkafka
安装完成后,在你的 php.ini 文件中添加:
extension=rdkafka.so
验证安装
重启 PHP 并检查扩展是否加载:
php -m | grep rdkafka三、使用 PHP 连接和操作 Kafka
安装 Composer 和 PHP Kafka 客户端库
如果还没有 Composer,请先安装 Composer:
curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer
创建一个新的项目并安装 nmred/kafka-php:
composer require nmred/kafka-php
PHP 生产者示例
<?php
require 'vendor/autoload.php';
use Kafka\Producer;
use Kafka\ProducerConfig;
$config = ProducerConfig::getInstance();
$config->setMetadataBrokerList('localhost:9092');
$config->setBrokerVersion('2.1.0');
$config->setRequiredAck(1);
$config->setIsAsyn(false);
$config->setProduceInterval(500);
$producer = new Producer(
function () {
return [
[
'topic' => 'test',
'value' => 'test message',
'key' => '',
],
];
}
);
$producer->success(function ($result) {
echo "Message produced successfully!\n";
});
$producer->error(function ($errorCode) {
echo "Error producing message: " . $errorCode . "\n";
});
$producer->send(true); PHP 消费者示例
<?php
require 'vendor/autoload.php';
use Kafka\Consumer;
use Kafka\ConsumerConfig;
$config = ConsumerConfig::getInstance();
$config->setMetadataBrokerList('localhost:9092');
$config->setGroupId('test_group');
$config->setBrokerVersion('2.1.0');
$config->setTopics(['test']);
$config->setOffsetReset('earliest');
$consumer = new Consumer();
$consumer->start(function ($topic, $part, $message) {
echo "Received message: " . $message['message']['value'] . "\n";
}); 总结通过以上步骤,您可以安装 Kafka,并使用 PHP 连接和操作 Kafka。这包括设置 Kafka 环境、安装 PHP 客户端库,以及编写生产者和消费者示例代码。根据实际需求,您可以进一步扩展和优化这些示例代码。
网友回复


