Amazon MSK 集群的分层存储 - Amazon Managed Streaming for Apache Kafka
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon MSK 集群的分层存储

分层存储是 Amazon MSK 的低成本存储层,可扩展到几乎无限的存储空间,支持经济高效地构建流数据应用程序。

您可以创建配置有能平衡性能和成本的分层存储的 Amazon MSK 集群。Amazon MSK 将流数据存储在性能优化型主存储层中,直到数据达到 Apache Kafka 主题的保留期限。然后,Amazon MSK 会自动将数据移入新的低成本存储层。

当应用程序开始从分层存储中读取数据时,前几个字节的读取延迟可能会增加。开始按顺序从低成本层读取其余数据时,可能会出现与主存储层类似的延迟。您无需为低成本分层存储预置任何存储,也不需要管理基础设施。您可以存储任意数量的数据,但只需按实际用量付费。此功能与 KIP-405: Kafka Tiered Storage 中引入的 API 兼容。

以下是分层存储的一些功能:

  • 您可以扩展到几乎无限的存储空间,不必猜测如何扩展 Apache Kafka 基础设施。

  • 您可以在 Apache Kafka 主题中延长数据保留时间,也可以增加主题存储空间,不必增加代理数量。

  • 其提供了持续时间更长的安全缓冲区来应对处理中的意外延迟。

  • 您可以使用现有的流处理代码和 Kafka API 按确切的生产顺序重新处理旧数据。

  • 分区重新平衡速度更快,因为二级存储上的数据不需要跨代理磁盘进行复制。

  • 代理和分层存储之间的数据只会在 VPC 内移动,而不会通过互联网进行传输。

  • 客户端计算机连接到启用了分层存储的新集群的过程,与连接到未启用分层存储的集群的过程相同。请参阅创建客户端计算机

Amazon MSK 集群的分层存储要求

  • 您必须使用 Apache Kafka 客户端版本 3.0.0 或更高版本来创建启用了分层存储的新主题。要将现有主题过渡到分层存储,您可以重新配置使用低于 3.0.0 的 Kafka 客户端版本(支持的最低 Apache Kafka 版本为 2.8.2.tiered)的客户端计算机来启用分层存储。请参阅 步骤 4:在 Amazon MSK 集群中创建主题

  • 启用了分层存储的 Amazon MSK 集群必须使用 3.6.0 或更高版本或者 2.8.2.tiered。

Amazon MSK 集群的分层存储约束和限制

分层存储存在以下约束和限制:

  • 确保客户端在从 Amazon MSK 中的 remote_tier 读取时未配置为 read_committed,除非应用程序正在主动使用事务功能。

  • 分层存储在 Amazon GovCloud(美国)区域不可用。

  • 分层存储仅适用于预置模式集群。

  • 分层存储不支持代理大小 t3.small。

  • 低成本存储的最短保留期为 3 天。主存储不存在最短保留期。

  • 分层存储不支持代理上的多个日志目录(与 JBOD 相关的功能)。

  • 分层存储不支持压缩主题。确保所有已开启分层存储的主题已将 cleanup.policy 配置为只能 “删除”。

  • 可以为单个主题禁用分层存储,但不能禁用整个集群的分层存储。一旦禁用,就无法再为主题启用分层存储。

  • 如果使用 Amazon MSK 版本 2.8.2.tiered,则只能迁移到另一个支持分层存储的 Apache Kafka 版本。如果不想继续使用支持分层存储的版本,请创建一个新的 MSK 集群并将您的数据迁移到该集群。

  • kafka-log-dirs 工具无法报告分层存储的数据大小。该工具只会报告主存储中日志段的大小。