kafka分区的大小和写入没有可用磁盘空间的主题

ffdz8vbo  于 2021-06-04  发布在  Kafka
关注(0)|答案(1)|浏览(390)

我开始学习Kafka的企业解决方案的目的。
在阅读过程中,我想到了一些问题:
一个主题上的所有分区大小相同吗?
如果Kafka的信息是关于一个主题发送的,而这个主题是重载的,会发生什么。没有关于该主题的任何新消息的内存?

jk9hmnmh

jk9hmnmh1#

一个主题上的所有分区大小相同吗?
不,它们通常大小不一样。主要取决于如何跨分区分发消息。如果在消息中使用密钥,它们将被散列并用于对数据进行分区。如果消息中没有密钥,数据将被分配到跨分区的循环访问。
此外,它还取决于生产者在将其发送到代理之前将多少消息 Package 到一个批中,以及应用哪种压缩类型。
但是,您可以说一个topicpartition的所有副本一同步就具有相同的大小。
如果Kafka的信息是关于一个主题发送的,而这个主题是重载的,会发生什么。没有关于该主题的任何新消息的内存?
一个主题本身不能被重载,而是整个Kafka代理。如果一个代理没有剩余的可用磁盘空间,那么它将自动关闭,在这种情况下,如果该代理的负责人在该代理上,您将无法将更多的数据写入topicpartition。但是,如果只有一个代理发生故障,并且您的主题中配置了多个复制,那么这些复制将接管另一个代理。
为了确保永远不会发生这种情况,如果您设置了 cleanup.policydelete 并设置 retention.bytes 这样,主题/副本的数量就不会超过存储限制。

相关问题