PHPackages                             thiagobrauer/laravel-kafka - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Queues &amp; Workers](/categories/queues)
4. /
5. thiagobrauer/laravel-kafka

ActiveLibrary[Queues &amp; Workers](/categories/queues)

thiagobrauer/laravel-kafka
==========================

19.4k↓50%PHP

Since Aug 18Pushed 4y ago1 watchersCompare

[ Source](https://github.com/thiagobrauer/laravel-kafka)[ Packagist](https://packagist.org/packages/thiagobrauer/laravel-kafka)[ RSS](/packages/thiagobrauer-laravel-kafka/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Laravel Kafka
=============

[](#laravel-kafka)

This package is based on [anam-hossain's example](https://engineering.carsguide.com.au/laravel-pub-sub-messaging-with-apache-kafka-3b27ed1ee5e8)

Installation
------------

[](#installation)

1. Install the [librdkafka library](https://github.com/edenhill/librdkafka)
2. Install the [php-rdkafka](https://github.com/arnaud-lb/php-rdkafka) PECL extension
3. Install this package using composer:

```
composer require thiagobrauer/laravel-kafka
```

5. Publish the package's configuration file:

```
php artisan vendor:publish --provider="ThiagoBrauer\LaravelKafka\ServiceProvider"
```

6. Add these properties to your `.env` file, changing the values as needed:

```
KAFKA_PRODUCER_SERVERS=kafka:9092
KAFKA_PRODUCER_DEBUG=true
KAFKA_CONSUMER_SERVERS=kafka:9092
KAFKA_CONSUMER_TOPICS=inventories
KAFKA_CONSUMER_GROUP_ID=group1

```

You can set multiple producer servers, consumer servers and consumer topics, using a `,` as separator.

Usage
-----

[](#usage)

### Producer

[](#producer)

To produce a message, just use the `KafkaProducer.php` class:

```
use ThiagoBrauer\LaravelKafka\KafkaProducer;

...

$producer new KafkaProducer()
$producer->setTopic('topic1')->send('message');
```

### Consumer

[](#consumer)

First, you need to create a class to handle the messages received. The class must extend `ThiagoBrauer\LaravelKafka\Handlers\MessageHandler` and implement the method `handle`, like the example below:

```
