Apache kafka 未使用的卡夫卡主题/分区的成本
在设计流处理管道时,如果我有许多主题,其中至少有一个分区,但可能没有数据进入其中,那么会产生什么成本Apache kafka 未使用的卡夫卡主题/分区的成本,apache-kafka,architecture,event-stream-processing,Apache Kafka,Architecture,Event Stream Processing,在设计流处理管道时,如果我有许多主题,其中至少有一个分区,但可能没有数据进入其中,那么会产生什么成本 例如,对于一个消费者,我可以选择一个包含所有数据和多个分区的“大主题”,或者我可以选择将数据(按租户、帐户或用户等)拆分为多个主题,默认情况下,使用单个分区。对于第二种情况,我担心会有很多主题/分区看不到数据。那么,这个未使用的分区是否会产生任何成本,或者一个未使用的主题是否不会产生任何成本。假设所提到的主题没有被压缩,那么保留任何最初生成的数据会产生初始开销,但在这之后,一个空的主题就会被压缩
例如,对于一个消费者,我可以选择一个包含所有数据和多个分区的“大主题”,或者我可以选择将数据(按租户、帐户或用户等)拆分为多个主题,默认情况下,使用单个分区。对于第二种情况,我担心会有很多主题/分区看不到数据。那么,这个未使用的分区是否会产生任何成本,或者一个未使用的主题是否不会产生任何成本。假设所提到的主题没有被压缩,那么保留任何最初生成的数据会产生初始开销,但在这之后,一个空的主题就会被压缩
对于前两种情况,拥有大量主题可能会增加请求延迟,从而导致不健康的集群。首先,一个fat主题和大量分区以及多个包含少量分区的主题之间没有区别。本主题仅用于事件之间的逻辑区别。卡夫卡只关心分区的数量 其次,有很多分区会导致一些问题:
- 打开的文件太多:
- 在代理和使用者中,更多的分区需要更多的内存 双方:
- 更多分区可能会增加不可用性:
仅更新(如果您正在使用confluent cloud),从2020年7月1日起,confluent每“分区小时”的费用也将增加。加起来相当多。