Consumer Group Partition Assignment
Consumer Group Partition Assignment
A log has partitions partitions numbered 0..partitions-1. A consumer group has a list of consumer IDs in a fixed order.
Assign partitions to consumers in round-robin order: partition p goes to consumer at index p % len(consumers).
Return the assignments, preserving the order of consumers.
If consumers is empty or partitions <= 0, return nil.
Types
type Assignment struct {
Consumer int
Partitions []int
}
Function signature
func AssignPartitions(consumers []int, partitions int) []Assignment
Example
consumers = [1,2,3]
partitions = 5
output = [
{Consumer:1, Partitions:[0,3]},
{Consumer:2, Partitions:[1,4]},
{Consumer:3, Partitions:[2]}
]
Run tests to see results
No issues detected