>  기사  >  백엔드 개발  >  메시징에 PHP 및 Kafka를 사용하는 방법 알아보기

메시징에 PHP 및 Kafka를 사용하는 방법 알아보기

PHPz
PHPz원래의
2023-06-20 09:09:091531검색

PHP는 서버 측 개발 및 웹 애플리케이션 개발에 일반적으로 사용되는 인기 있는 프로그래밍 언어입니다. Kafka는 대규모 메시징을 관리하는 데 사용할 수 있는 분산 메시징 시스템입니다. 이 기사에서는 메시징에 PHP와 Kafka를 사용하는 방법을 소개합니다.

먼저 필요한 도구와 라이브러리를 설치해야 합니다. Linux에서는 다음 명령을 사용할 수 있습니다.

sudo apt-get install php-zmq librdkafka-dev

Windows 시스템을 사용하는 경우 관련 도구와 라이브러리를 수동으로 다운로드하여 설치해야 합니다.

다음으로 PHP용 ZeroMQ 확장을 설치해야 합니다. Linux에서는 다음 명령을 사용할 수 있습니다.

sudo pecl install zmq-beta

Windows 시스템을 사용하는 경우 PHP용 ZeroMQ 확장을 수동으로 다운로드하여 설치해야 합니다.

이러한 준비가 완료되면 메시징에 PHP와 Kafka를 사용할 수 있습니다. 다음은 간단한 예입니다.

<?php

$conf = new RdKafkaConf();
$conf->set('metadata.broker.list', 'localhost:9092');

$producer = new RdKafkaProducer($conf);

$topic = $producer->newTopic("test");

for ($i = 0; $i < 10; $i++) {
    $message = "Message " . $i;
    $topic->produce(RD_KAFKA_PARTITION_UA, 0, $message);
}

$producer->flush(10000);

$consumerConf = new RdKafkaConf();
$consumerConf->set('metadata.broker.list', 'localhost:9092');
$consumerConf->set('group.id', 'testgroup');

$consumer = new RdKafkaKafkaConsumer($consumerConf);
$consumer->subscribe(['test']);

while (true) {
    $message = $consumer->consume(120 * 1000);

    switch ($message->err) {
        case RD_KAFKA_RESP_ERR_NO_ERROR:
            echo "Received message: " . $message->payload . "
";
            break;
        case RD_KAFKA_RESP_ERR__PARTITION_EOF:
            echo "End of partition
";
            break;
        case RD_KAFKA_RESP_ERR__TIMED_OUT:
            echo "Timed out
";
            break;
        default:
            echo "Error: " . $message->errstr() . "
";
            break;
    }

    $consumer->commit();
}

이 예에서는 먼저 생산자를 만들고 "test"라는 주제에 10개의 메시지를 보냅니다. 그런 다음 소비자를 생성하고 "test" 주제를 구독했습니다. 마지막으로 Kafka 주제에서 사용된 메시지를 수신하는 무한 루프에 들어갑니다.

이 예제를 실행하면 Kafka 주제에서 보낸 메시지를 지속적으로 수신하여 콘솔에 출력합니다. 루프를 종료하려면 Ctrl + C 키 조합을 사용하여 프로그램을 중지하십시오.

이 간단한 예에서는 메시징에 PHP와 Kafka를 사용하는 방법을 보여줍니다. 이 접근 방식을 배우면 대규모 메시징 및 처리를 더 잘 관리하고 애플리케이션을 더욱 강력하고 안정적으로 만드는 데 도움이 됩니다.

위 내용은 메시징에 PHP 및 Kafka를 사용하는 방법 알아보기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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