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