PHP code example of gurento / kafka-consumer
1. Go to this page and download the library: Download gurento/kafka-consumer library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
gurento / kafka-consumer example snippets
app(\Gurento\KafkaConsumer\Services\KafkaProducerService::class)
->send('APP.LIVE.orders', ['uuid' => 'ord-001', 'status' => 'paid']);
use Gurento\KafkaConsumer\Events\KafkaMessageFailed;
use Gurento\KafkaConsumer\Events\KafkaMessageProduceFailed;
Event::listen(KafkaMessageFailed::class, function (KafkaMessageFailed $event): void {
if (! $event->willRetry) {
// permanent consume failure — alert your on-call channel
}
});
Event::listen(KafkaMessageProduceFailed::class, function (KafkaMessageProduceFailed $event): void {
if (! $event->willRetry) {
// permanent send failure — alert your on-call channel
}
});
$this->app->singleton(
\Gurento\KafkaConsumer\Contracts\ConsumerEngine::class,
YourCustomConsumerEngine::class,
);
$this->app->singleton(
\Gurento\KafkaConsumer\Contracts\ProducerEngine::class,
YourCustomProducerEngine::class,
);
public function consume(array $topics, callable $handler, array $options = []): void;
public function publish(string $topic, array $payload, ?string $key = null, array $headers = []): void;
app(\Gurento\KafkaConsumer\Services\KafkaConsumerService::class)
->handle($topicName, $payload, $metadata);
app(\Gurento\KafkaConsumer\Services\KafkaProducerService::class)
->send($topicName, $payload, $key);
bash
composer vendor:publish --tag=kafka-consumer-config
php artisan vendor:publish --tag=kafka-consumer-migrations
php artisan migrate
bash
php artisan gurento:kafka-consume
bash
php artisan gurento:kafka-consume
bash
php artisan gurento:kafka-consume --topics=HR_APP.LIVE.office
php artisan gurento:kafka-consume --topics=HR_APP.LIVE.office --limit=500
php artisan gurento:kafka-consume --from-beginning --stop-on-empty
bash
php artisan gurento:kafka-consume --reconsume-failed --reconsume-limit=100
bash
php artisan gurento:kafka-produce --topic=APP.LIVE.orders --payload='{"uuid":"ord-001","status":"paid"}'
bash
php artisan gurento:kafka-produce --retry-failed --retry-limit=100