Tony Mancill has some tips for working with large-scale Kafka clusters:
Unless you have architectural needs that require you to do otherwise, use random partitioning when writing to topics. When you’re operating at scale, uneven data rates among partitions can be difficult to manage. There are three main reasons for this:
-
First, consumers of the “hot” (higher throughput) partitions will have to process more messages than other consumers in the consumer group, potentially leading to processing and networking bottlenecks.
-
Second, topic retention must be sized for the partition with the highest data rate, which can result in increased disk usage across other partitions in the topic.
-
Third, attaining an optimum balance in terms of partition leadership is more complex than simply spreading the leadership across all brokers. A “hot” partition might carry 10 times the weight of another partition in the same topic.
There’s some interesting advice in here.