kafka php
V0.2.0.8
중국어(중국어)
Kafka-php는 현재 0.8.x 이상의 Kafka 버전을 지원하는 순수 PHP Kafka 클라이언트입니다. 이 프로젝트 v0.2.x 및 v0.1.x는 원본 v0.1.x를 사용하는 경우 호환되지 않습니다. document Kafka PHP v0.1.x Document이지만 v0.2.x로 전환하는 것이 좋습니다. v0.2.x는 PHP 비동기 구현 및 kafka 브로커 상호 작용을 사용하며 v0.1.x보다 효율적입니다. PHP 언어를 사용하므로 확장을 컴파일하지 않으므로 액세스 및 유지 관리 비용을 줄일 수 있습니다.
lib 디렉토리를 PHP include_path에 추가하고 예제 디렉토리에 있는 것과 같은 자동 로더를 사용하십시오(코드는 PEAR/Zend 파일당 하나의 클래스 규칙을 따릅니다).
Composer를 사용하여 프로젝트의 종속성을 관리하는 경우 프로젝트에 종속성 nmred/kafka-php
추가하기만 하면 됩니다.
$ composer require nmred/kafka-php
다음은 작곡가.json 파일의 최소 예입니다.
{
"require": {
"nmred/kafka-php": "0.2.*"
}
}
구성 속성은 구성에 문서화되어 있습니다.
<?php
require ' ../vendor/autoload.php ' ;
date_default_timezone_set ( ' PRC ' );
use Monolog Logger ;
use Monolog Handler StdoutHandler ;
// Create the logger
$ logger = new Logger ( ' my_logger ' );
// Now add some handlers
$ logger -> pushHandler ( new StdoutHandler ());
$ config = Kafka ProducerConfig:: getInstance ();
$ config -> setMetadataRefreshIntervalMs ( 10000 );
$ config -> setMetadataBrokerList ( ' 10.13.4.159:9192 ' );
$ config -> setBrokerVersion ( ' 1.0.0 ' );
$ config -> setRequiredAck ( 1 );
$ config -> setIsAsyn ( false );
$ config -> setProduceInterval ( 500 );
$ producer = new Kafka Producer (
function () {
return [
[
' topic ' => ' test ' ,
' value ' => ' test....message. ' ,
' key ' => ' testkey ' ,
],
];
}
);
$ producer -> setLogger ( $ logger );
$ producer -> success ( function ( $ result ) {
var_dump ( $ result );
});
$ producer -> error ( function ( $ errorCode ) {
var_dump ( $ errorCode );
});
$ producer -> send ( true );
<?php
require ' ../vendor/autoload.php ' ;
date_default_timezone_set ( ' PRC ' );
use Monolog Logger ;
use Monolog Handler StdoutHandler ;
// Create the logger
$ logger = new Logger ( ' my_logger ' );
// Now add some handlers
$ logger -> pushHandler ( new StdoutHandler ());
$ config = Kafka ProducerConfig:: getInstance ();
$ config -> setMetadataRefreshIntervalMs ( 10000 );
$ config -> setMetadataBrokerList ( ' 127.0.0.1:9192 ' );
$ config -> setBrokerVersion ( ' 1.0.0 ' );
$ config -> setRequiredAck ( 1 );
$ config -> setIsAsyn ( false );
$ config -> setProduceInterval ( 500 );
$ producer = new Kafka Producer ();
$ producer -> setLogger ( $ logger );
for ( $ i = 0 ; $ i < 100 ; $ i ++) {
$ producer -> send ([
[
' topic ' => ' test1 ' ,
' value ' => ' test1....message. ' ,
' key ' => '' ,
],
]);
}
<?php
require ' ../vendor/autoload.php ' ;
date_default_timezone_set ( ' PRC ' );
use Monolog Logger ;
use Monolog Handler StdoutHandler ;
// Create the logger
$ logger = new Logger ( ' my_logger ' );
// Now add some handlers
$ logger -> pushHandler ( new StdoutHandler ());
$ config = Kafka ConsumerConfig:: getInstance ();
$ config -> setMetadataRefreshIntervalMs ( 10000 );
$ config -> setMetadataBrokerList ( ' 10.13.4.159:9192 ' );
$ config -> setGroupId ( ' test ' );
$ config -> setBrokerVersion ( ' 1.0.0 ' );
$ config -> setTopics ([ ' test ' ]);
// $ config - > setOffsetReset ( 'earliest' );
$ consumer = new Kafka Consumer ();
$ consumer -> setLogger ( $ logger );
$ consumer -> start ( function ( $ topic , $ part , $ message ) {
var_dump ( $ message );
});
예시 참조
그룹 1: 531522091 그룹 2: 657517955