如何在多个磁盘上分布 Kafka-Streams state store
How to distribute Kafka-Streams state store on multiple disks
在 Kafka Broker 上,建议为消息日志使用多个驱动器以提高吞吐量。这就是为什么他们有一个 log.dirs 属性 可以有多个目录,这些目录将以循环方式分配给分区。
我们已经以这种方式为事件驱动的 kafka 应用程序设置了很多安装,其中我们有大约 4 个节点,每个节点有 5 个磁盘。
现在我们想将 Kafka-Streams 与键值存储一起使用,我们在其中保存计算数据以进行快速范围查询。我们看到 Kafka-Streams 将分区 1 对 1 映射到多个状态存储,并为每个状态创建一个单独的子目录。
但是,我们无法配置如何将这些子目录分布在不同的磁盘上。我们只能配置单个父目录为'state.dir'(StreamsConfig.STATE_DIR_CONFIG).
我缺少配置吗?还是拥有多个磁盘与 Kafka Streams 不那么相关?
这不是真正相关的,但这必须通过 RAID 配置在 OS 级别处理,例如。
或者您可以实现 StateStore 接口并编写您自己的可以使用多个磁盘(或远程分布式文件系统)的提供程序
在 Kafka Broker 上,建议为消息日志使用多个驱动器以提高吞吐量。这就是为什么他们有一个 log.dirs 属性 可以有多个目录,这些目录将以循环方式分配给分区。
我们已经以这种方式为事件驱动的 kafka 应用程序设置了很多安装,其中我们有大约 4 个节点,每个节点有 5 个磁盘。
现在我们想将 Kafka-Streams 与键值存储一起使用,我们在其中保存计算数据以进行快速范围查询。我们看到 Kafka-Streams 将分区 1 对 1 映射到多个状态存储,并为每个状态创建一个单独的子目录。
但是,我们无法配置如何将这些子目录分布在不同的磁盘上。我们只能配置单个父目录为'state.dir'(StreamsConfig.STATE_DIR_CONFIG).
我缺少配置吗?还是拥有多个磁盘与 Kafka Streams 不那么相关?
这不是真正相关的,但这必须通过 RAID 配置在 OS 级别处理,例如。
或者您可以实现 StateStore 接口并编写您自己的可以使用多个磁盘(或远程分布式文件系统)的提供程序