我阅读了apache kafka的文档,但是我找不到一个关于我应该在任何场景中使用多少分区的示例.
例如,假设我每分钟有5000个msgs /条目,对于这种情况,我应该有多少个分区(或者你推荐)?
或者有什么方法可以计算出来吗?也许我可以参考一个价值表?
解决方法
没有好的默认分区数,您应该提供更多信息.
这取决于消息的大小,您的平台和使用模式.服务器可以存储具有保留集的所有邮件吗?如果不是,您应该将数据拆分为多个实例分区.如果您需要更高的吞吐量,或者您需要按顺序处理消息,或者可以在订单上没有特定约束的情况下使用数据,则情况相同.还有一个问题是您期望消息消耗的延迟.如果您的消息很重要,则必须为每个分区添加副本并确认所有副本上的所有消息,这样会降低吞吐量.
您还需要指定您提供的数字是关于生成或消费的消息.
考虑到Kafka可以快速处理消息,每分钟5000条消息非常低.我轻松达到10000条消息/秒,每台服务器注入1kb大小.
每分钟5000条消息每秒发送84条消息,因此,如果您的消费者应用程序的一个实例可以处理这个数量,那么您可以考虑添加分区并并行运行多个消费者应用程序,其中一个将负责分区.