最近項目開發中須要使用 Kafka
消息隊列。通過檢索,PHP下面有通用的兩種方式來調用 Kafka
。php
以 PHP 擴展的形式進行使用是很是高效的。另外,該項目也提供了很是完備的 文檔 。html
不過在 Mac 環境中安裝的過程當中出現瞭如下報錯:git
$ sudo pecl install rdkafka checking for re2c... no configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers. checking for gawk... no checking for nawk... no checking for awk... awk checking if awk is broken... no checking for rdkafka support... yes, shared checking for librdkafka/rdkafka.h" in default path... not found configure: error: Please reinstall the rdkafka distribution
開始覺得是由於 pecl
安裝缺乏了一些依賴。而後使用了源碼編譯的方式進行安裝:github
$ git clone https://github.com/arnaud-lb/php-rdkafka.git $ cd php-rdkafka $ phpize $ ./configure $ make all -j 5 .... checking for re2c... no configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers. checking for gawk... no checking for nawk... no checking for awk... awk checking if awk is broken... no checking for rdkafka support... yes, shared checking for librdkafka/rdkafka.h" in default path... not found configure: error: Please reinstall the rdkafka distribution
一樣報錯了。後來仔細看文檔才發現。這裏有一個依賴:librdkafka 。code
而後安裝它:htm
$ git clone https://github.com/edenhill/librdkafka.git $ cd librdkafka $ ./configure $ make && make install
再執行 sudo pecl install rdkafka
,執行OK。隊列
而後將 rdkafka.so
添加到相應的 /path/to/php.ini
的末尾便可。pdo
執行 php -m | grep rdkafka
,驗證是否添加完成。開發
Kafka-php 使用純粹的 PHP 編寫的 Kafka
客戶端,目前支持 0.8.x
以上版本的 Kafka
。因爲使用 PHP 語言編寫因此不用編譯任何的擴展就能夠使用,下降了接入與維護成本。文檔