zookeeper和PHPzookeeper和kafka擴充套件安裝

風來了發表於2016-09-07

風來了.fox

安裝zookeeper

推薦1.1 直接複製

1.1.直接安裝zookeeper(無須編譯)

下載地址:http://mirror.bit.edu.cn/apache/zookeeper/

wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz

tar -zxvf zookeeper-3.4.9.tar.gz
mv zookeeper-3.4.9/ /usr/local/zookeeper/

設定全域性變數

vim ~/.bash_profile

最後一行加入

export PATH=/usr/local/zookeeper/bin:$PATH

使之生效

source ~/.bash_profile

配置檔案位置

/usr/local/zookeeper/conf/zoo.cfg 

注意:預設配置檔案並沒有,直有一個案例檔案 zoo_sample.cfg
使用的時候要 自行復制一個

cp /usr/local/zookeeper/conf/zoo_sample.cfg /usr/local/zookeeper/conf/zoo.cfg

1.2.原始碼編譯安裝zookeeper

下載地址:http://mirror.bit.edu.cn/apache/zookeeper/

wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz

tar -zxf zookeeper-3.4.9.tar.gz
cd zookeeper-3.4.9/src/c
./configure -prefix=/usr/local/zookeeper/zookeeper-3.4.9/
make && make install

設定全域性變數

vim ~/.bash_profile

最後一行加入

export PATH=/usr/local/zookeeper/zookeeper-3.4.9/bin:$PATH

使之生效

source ~/.bash_profile

配置檔案位置

/usr/local/zookeeper/zookeeper-3.4.9/conf/zoo.cfg 

注意:預設配置檔案並沒有,直有一個案例檔案 zoo_sample.cfg
使用的時候要 自行復制一個

cp /usr/local/zookeeper/zookeeper-3.4.9/conf/zoo_sample.cfg /usr/local/zookeeper/zookeeper-3.4.9/conf/zoo.cfg

2.安裝php zookeeper擴充套件

wget http://pecl.php.net/get/zookeeper-0.2.2.tgz
tar -zxvf zookeeper-0.2.2.tgz
cd zookeeper-0.2.2
phpize
./configure -with-php-config=/www/lanmps/php5.6.23/bin/php-config  -with-libzookeeper-dir=/usr/local/zookeeper/zookeeper-3.4.9/
make && make install

注意:phpize 為你的PHP版本目錄的 phpize

注意最新版kafka請使用7(3和4PASS)

3.安裝librdkafka

wget 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

4.安裝php-kafka擴充套件

wget https://github.com/EVODelavega/phpkafka/archive/master.zip
mv master.zip phpkafka-master.zip
unzip phpkafka-master.zip
cd phpkafka-master
phpize
./configure --enable-kafka --with-php-config=/www/lanmps/php5.6.23/bin/php-config
make  #編譯
make install  #安裝

注意:phpize 為你的PHP版本目錄的 phpize

5.配置擴充套件

編輯PHP配置檔案

vim php.ini

末尾增加

extension=zookeeper.so
extension=kafka.so

注意:先查詢 extension_dir 是否已經配置過,如果沒有配置,請自行配置。
每個擴充套件編譯安裝成功後都會輸出(類似如下)

Installing shared extensions:     /安裝目錄/php5.6.23/lib/php/extensions/no-debug-non-zts-20131226/ 

只要把地址複製,改成如下格式,加入到php.ini裡

extension_dir=/安裝目錄/php5.6.23/lib/php/extensions/no-debug-non-zts-20131226/

6.檢視是否安裝完成


phpinfo();
裡面檢視
是否有 kafka,zookeeper 擴充套件,如果有表示安裝成功

7.PHP-kafka擴充套件(3和4安裝完成後無法使用時)

https://github.com/nmred/kafka-php
使用此擴充套件,支援最新版kafka
這裡使用composer安裝的,以下是示例(example資料夾下):

producer.php

<?php
require `vendor/autoload.php`;


    $part = mt_rand(0, 1);
    $produce = KafkaProduce::getInstance(`localhost:2181`, 3000);
    // get available partitions
    $partitions = $produce->getAvailablePartitions(`topic_name`);
    var_dump($partitions);
    // send message
    $produce->setRequireAck(-1);
    $produce->setMessages(`topic_name`, 0, array(date(`Y-m-d H:i:s`));

consumer.php

require `vendor/autoload.php`;

$consumer = KafkaConsumer::getInstance(`localhost:2181`);
$group = `topic_name`;
$consumer->setGroup($group);
$consumer->setFromOffset(true);
$consumer->setTopic(`topic_name`, 0);
$consumer->setMaxBytes(102400);
$result = $consumer->fetch();
print_r($result);
foreach ($result as $topicName => $partition) {
    foreach ($partition as $partId => $messageSet) {
    var_dump($partition->getHighOffset());
        foreach ($messageSet as $message) {
            var_dump((string)$message);
        }
    var_dump($partition->getMessageOffset());
    }
}


相關文章