分层存储 - Amazon Managed Streaming for Apache Kafka

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

分层存储

分层存储是 Amazon 的低成本存储层MSK,可扩展到几乎无限的存储空间,因此构建流数据应用程序具有成本效益。

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

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

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

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

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

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

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

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

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

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

分层存储要求

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

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

分层存储的约束和限制

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

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

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

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

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

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

  • 分层存储不支持压缩主题。确保所有已开启分层存储的主题都将 cleanup.policy 配置为仅限 “” DELETE。

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

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

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