Diego Velez Asked: 2016-08-06 07:23:48 +0800 CST2016-08-06 07:23:48 +0800 CST 2016-08-06 07:23:48 +0800 CST 选择 Kafka 中的分区数 772 我阅读了 apache kafka 的文档,但找不到关于在任何情况下应该使用多少个分区的示例。 例如,假设我每分钟有 5000 个消息/条目,对于这种情况,我应该有多少个分区(或者你推荐)? 或者有没有办法计算这个?也许有一个我可以参考的值表? linux kafka 1 个回答 Voted Best Answer Baptiste Mille-Mathias 2016-08-06T07:31:27+08:002016-08-06T07:31:27+08:00 没有很好的默认分区数,您应该提供更多信息。 这取决于消息的大小、您的平台和使用模式。服务器可以存储所有带有保留集的消息吗?如果不是,您应该将数据拆分为实例的多个分区。如果您需要更好的吞吐量,或者如果您需要按顺序处理消息,或者可以在对订单没有特别限制的情况下使用数据,则情况相同。还有一个你期望消息被消费的延迟问题。如果您的消息很重要,您必须为每个分区添加副本并确认所有副本上的所有消息,这样会降低吞吐量。 您还需要指定您提供的数字是否与生成或消耗的消息有关。 考虑到 Kafka 是为快速处理消息而构建的,每分钟 5000 条消息非常低。我很容易达到每台 1kb 大小的服务器每秒注入 10000 条消息。 每分钟 5000 条消息每秒产生 84 条消息,因此如果您的消费者应用程序的一个实例可以处理这个数量,那么您很好,否则您考虑添加分区并并行运行多个消费者应用程序,每个消费者应用程序将负责一个分区。 Confluent Inc发布了一篇关于如何选择分区数量(以及副本数量)的博客文章。
没有很好的默认分区数,您应该提供更多信息。
这取决于消息的大小、您的平台和使用模式。服务器可以存储所有带有保留集的消息吗?如果不是,您应该将数据拆分为实例的多个分区。如果您需要更好的吞吐量,或者如果您需要按顺序处理消息,或者可以在对订单没有特别限制的情况下使用数据,则情况相同。还有一个你期望消息被消费的延迟问题。如果您的消息很重要,您必须为每个分区添加副本并确认所有副本上的所有消息,这样会降低吞吐量。
您还需要指定您提供的数字是否与生成或消耗的消息有关。
考虑到 Kafka 是为快速处理消息而构建的,每分钟 5000 条消息非常低。我很容易达到每台 1kb 大小的服务器每秒注入 10000 条消息。
每分钟 5000 条消息每秒产生 84 条消息,因此如果您的消费者应用程序的一个实例可以处理这个数量,那么您很好,否则您考虑添加分区并并行运行多个消费者应用程序,每个消费者应用程序将负责一个分区。
Confluent Inc发布了一篇关于如何选择分区数量(以及副本数量)的博客文章。