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!
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) ]);