我读了apache kafka的文档,但我找不到在任何情况下应该使用多less个分区的示例。
例如,假设我每分钟有5000个信息/条目,对于这种情况我应该有多less个分区(或者你推荐)?
或者有什么办法来计算这个? 也许有一张我可以参考的价值表?
没有好的默认分区数量,你应该提供更多的信息。
这取决于消息的大小,平台和使用模式。 服务器可以存储所有具有保留设置的消息吗? 如果不是的话,你应该用几个分区来分割数据。 如果您需要更高的吞吐量,或者需要按顺序处理消息,或者消耗的数据没有特定的订单限制,则情况相同。 还有一个问题是你期望消息被使用的延迟。 如果您的消息很重要,则必须为每个分区添加副本并确认所有副本上的所有消息,这样会降低吞吐量。
您还需要指定您提供的号码是关于生成或消费的消息。
考虑到Kafka被构build为快速处理消息,每分钟5000条消息是非常低的。 我轻松地达到每个服务器1千字节大小10000信息/秒注入。
每分钟5000条消息每秒产生84条消息,所以如果你的消费者应用程序的一个实例可以处理这个数量,那么你是好的,否则你会考虑添加分区并且同时运行几个消费者应用程序,其中一个将负责分区。
Confluent Inc 发布了一篇关于如何select分区数量(以及副本数量)的博客文章。