PHP 訊息佇列 Kafka 使用

2022-09-15 08:51:11 字數 1710 閱讀 7267

安裝 kafka 服務

wget

解壓,進入目錄

tar -zxvf kafka_2.13-2.5.0.tgz

cd kafka_2.13-2.5.0

啟動 kafka 服務

使用安裝包中的指令碼啟動單節點 zookeeper 例項

bin/zookeeper-server-start.sh -daemon config/zookeeper.properties

使用 kafka-server-start.sh 啟動 kafka 服務

bin/kafka-server-start.sh config/server.properties

建立 topic

bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

檢視 topic 列表,檢查是否建立成功

bin/kafka-topics.sh --list --zookeeper localhost:2181

$ test

生產者,傳送訊息

bin/kafka-console-producer.sh --broker-list 127.0.0.1:9092 --topic test

服務方面到這裡就差不多了,接下來就是 php 的事了。

安裝 php 擴充套件

rdkafka 安裝需要依賴 librdkafka , 所以先安裝 librdkafka

git clone 

cd librdkafka

./configure

make && make install

安裝 php-rdkafka 擴充套件

git clone 

cd php-rdkafka

phpize

./configure --with-php-config=/usr/local/cellar/[email protected]/7.2.24/bin/php-config ## 這裡根據自己的情況填寫路徑

make && make install

在 php-ini 加上

extension=rdkafka.so

重啟,php-fpm,就應該可以看到該擴充套件。

使用kafka

建立乙個生產者類

<?php

class kafkaproducer

public static function producer($message, $topic = 'test')

}}

建立乙個消費類

<?php

class kafkaconsumer}}

}

問題彙總

1、 no j**a runtime present, requesting install

2、建立 topic 出現:replication factor: 1 larger than **ailable brokers: 0

意思是至少有乙個 brokers. 也就是說並沒有有效的 brokers 可以用。你要確保你的 kafka 已經啟動了

訊息佇列 訊息佇列 kafka

kafka是乙個分布式的基於發布 訂閱模式的訊息佇列,主要用於大資料實時處理領域。要理解kafka首先要有分布式的概念,要有訊息佇列的概念。分布式系統最大的優勢就是解耦和削峰,這種情況下,a系統生成了乙個訊息,b系統非同步獲取,那麼就需要乙個存放訊息的訊息佇列 mq 相比較傳統的訊息佇列,訊息被消費...

訊息佇列 Kafka學習

kafka是乙個分布式的訊息佇列,學習見apache kafka文件,中文翻譯見kafka分享,乙個簡單的入門例子見kafka 入門例項。本文只針對自己感興趣的點記錄下。producer consumer 訊息的生成者和使用者。broker kafka server充當broker角色,起到訊息佇列...

訊息佇列 Kafka學習

kafka是乙個分布式的訊息佇列,學習見apache kafka文件,中文翻譯見kafka分享,乙個簡單的入門例子見kafka 入門例項。本文只針對自己感興趣的點記錄下。producer consumer 訊息的生成者和使用者。broker kafka server充當broker角色,起到訊息佇列...