>백엔드 개발 >PHP 문제 >rdkafka PHP 설치 방법

rdkafka PHP 설치 방법

藏色散人
藏色散人원래의
2021-05-13 09:14:442908검색

php rdkafka 설치 방법: 먼저 librdkafka를 다운로드하여 설치한 다음 php-rdkafka 확장을 설치합니다. 마지막으로 php.ini에 "extension=rdkafka.so"를 작성합니다.

rdkafka PHP 설치 방법

이 문서의 운영 환경: windows7 시스템, php7.0 버전, DELL G3 컴퓨터

php-rdkafka 확장 설치

php에는 kafka를 호출하는 두 가지 방법이 있습니다

  • php-rdkafka

문서 주소 : https://arnaud-lb.github.io/php-rdkafka/phpdoc/book.rdkafka.html
rdkafka 설치는 librdkafka에 따라 다르므로 먼저 librdkafka를 설치해야 합니다
다운로드 주소 http:// pecl.php.net /package/rdkafka

git clone https://github.com/edenhill/librdkafka.git
cd librdkafka
./configure
make && make install

php-rdkafka 확장

git clone https://github.com/arnaud-lb/php-rdkafka.git
cd php-rdkafka
phpize
./configure --with-php-config=/usr/local/php7.0/bin/php-config
make && make install

을 설치한 다음

extension = rdkafka.so


rdkafka PHP 설치 방법




rdkafka PHP 설치 방법을 작성하세요. php.ini에서

rdkafka PHP 설치 방법

  • kafka- php 확장 패키지

문서 주소: https://github.com/weiboad/kafka-php

  • 간단한 예

Generator

<?php $rk = new RdKafka\Producer();
$rk->setLogLevel(LOG_DEBUG);
$rk->addBrokers("192.168.2.152");

$topic = $rk->newTopic("shop");

for ($i = 0; $i produce(RD_KAFKA_PARTITION_UA, 0, "发送信息: $i");
    $rk->poll(0);
}

while ($rk->getOutQLen() > 0) {
    $rk->poll(50);
}

?>

Consumer

<?php $conf = new RdKafka\Conf();

$conf->set('group.id', 'myConsumerGroup');

$rk = new RdKafka\Consumer($conf);
$rk->addBrokers("192.168.2.150:9092");

$topicConf = new RdKafka\TopicConf();
$topicConf->set('auto.commit.interval.ms', 100);
$topicConf->set('offset.store.method', 'file');
$topicConf->set('offset.store.path', sys_get_temp_dir());
$topicConf->set('auto.offset.reset', 'smallest');

$topic = $rk->newTopic("shop", $topicConf);

// Start consuming partition 0
$topic->consumeStart(0, RD_KAFKA_OFFSET_STORED);

while (true) {
    $message = $topic->consume(0, 120*10000);
    switch ($message->err) {
        case RD_KAFKA_RESP_ERR_NO_ERROR:
        //没有错误打印信息
            var_dump($message);
            break;
        case RD_KAFKA_RESP_ERR__PARTITION_EOF:
            echo "等待接收信息\n";
            break;
        case RD_KAFKA_RESP_ERR__TIMED_OUT:
            echo "超时\n";
            break;
        default:
            throw new \Exception($message->errstr(), $message->err);
            break;
    }
}

?>


rdkafka PHP 설치 방법


추천 학습: "PHP 비디오 튜토리얼"

위 내용은 rdkafka PHP 설치 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.