Heim >Backend-Entwicklung >PHP-Tutorial >In PHP geschriebener Kafka-Client

In PHP geschriebener Kafka-Client

小云云
小云云Original
2017-12-05 11:05:172508Durchsuche

Kafka-php verwendet einen in reinem PHP geschriebenen Kafka-Client. Es unterstützt derzeit die Kafka-Versionen 0.2.x und v0.1.x, wenn Sie das Original v0.1 verwenden Für .x können Sie auf das Dokument Kafka PHP v0.1.x verweisen, es wird jedoch empfohlen, auf v0.2.x zu wechseln. v0.2.x nutzt die asynchrone PHP-Ausführung zur Interaktion mit dem Kafka-Broker, was stabiler und effizienter ist als v0.1.x. Da es in der PHP-Sprache geschrieben ist, kann es ohne Kompilierung von Erweiterungen verwendet werden, was den Zugriff und die Wartung reduziert Kosten.

Anforderungen an die Installationsumgebung

  • PHP-Version ist größer als 5.5

  • Kafka Server-Version ist größer als 0.8.0

  • Die Kafka Server-Version des Verbrauchsmoduls muss größer als 0.9.0 sein

Installation

Verwenden Sie Composer zur Installation

Fügen Sie den von nmred/kafka -php abhängigen Composer zur Datei „composer.json“ des Projekts hinzu, z. B.:

{
	"require": {
		"nmred/kafka-php": "0.2.*"
	}
}

Produzieren

<?php
require &#39;../vendor/autoload.php&#39;;
date_default_timezone_set(&#39;PRC&#39;);
use Monolog\Logger;
use Monolog\Handler\StdoutHandler;
// Create the logger
$logger = new Logger(&#39;my_logger&#39;);
// Now add some handlers
$logger->pushHandler(new StdoutHandler());

// 设置生产相关配置,具体配置参数见 [Configuration](Configuration.md)
$config = \Kafka\ProducerConfig::getInstance();
$config->setMetadataRefreshIntervalMs(10000);
$config->setMetadataBrokerList('10.13.4.159:9192');
$config->setBrokerVersion('0.9.0.1');
$config->setRequiredAck(1);
$config->setIsAsyn(false);
$config->setProduceInterval(500);
$producer = new \Kafka\Producer(function() {
	return array(
		array(
			'topic' => 'test',
			'value' => 'test....message.',
			'key' => 'testkey',
		),
	);
});
$producer->setLogger($logger);
$producer->success(function($result) {
	var_dump($result);
});
$producer->error(function($errorCode, $context) {
	var_dump($errorCode);
});
$producer->send();

Consumer

<?php
require &#39;../vendor/autoload.php&#39;;
date_default_timezone_set(&#39;PRC&#39;);
use Monolog\Logger;
use Monolog\Handler\StdoutHandler;
// Create the logger
$logger = new Logger(&#39;my_logger&#39;);
// 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('0.9.0.1');
$config->setTopics(array('test'));
//$config->setOffsetReset('earliest');
$consumer = new \Kafka\Consumer();
$consumer->setLogger($logger);
$consumer->start(function($topic, $part, $message) {
	var_dump($message);
});

Der obige Inhalt ist ein in PHP geschriebenes Kafka-Client-Tutorial. Ich hoffe, es kann jedem helfen.

Verwandte Empfehlungen:

Beispiel für Handshake zwischen Client und Server von Socket in Python

PHP erhält die IP- und geografische Adresse des Besuchers (Clients). Standorttext-Tutorial

Wie entwickelt man schnell einen Webservice-Client?

Das obige ist der detaillierte Inhalt vonIn PHP geschriebener Kafka-Client. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:PHP-Chatbot basierend auf AIMLNächster Artikel:PHP-Chatbot basierend auf AIML