Assigning consumers to a topic partition

Kafka clients allows you to implement your own partition assignment strategies for consumers.

Support Laravel Kafka by sponsoring me!

Do you find Laravel Kafka valuable and wanna support its development?

Laravel Kafka is free and Open Source software, built to empower developers like you. Your support helps maintain and enhance the project. If you find it valuable, please consider sponsoring me on GitHub. Every contribution makes a difference and keeps the development going strong! Thank you!

Want to hide this message? Sponsor at any tier of $10/month or more!

If you have a topic with multiple consumers and want to assign a consumer to a specific partition topic, you can use the assignPartitions method, available on the ConsumerBuilder instance:

$partition = 1; // The partition number you want to assign

$consumer = \Junges\Kafka\Facades\Kafka::consumer()
    ->assignPartitions([
        new \RdKafka\TopicPartition('your-topic-name', $partition)
    ]);

The assignPartitions method accepts an array of \RdKafka\TopicPartition objects. You can assign multiple partitions to the same consumer by adding more entries to the assignPartitions parameter:

$consumer = \Junges\Kafka\Facades\Kafka::consumer()
    ->assignPartitions([
        new \RdKafka\TopicPartition('your-topic-name', 1)
        new \RdKafka\TopicPartition('your-topic-name', 2)
        new \RdKafka\TopicPartition('your-topic-name', 3)
    ]);
Previous
Using regex to subscribe to kafka topics