本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon MSK 集群的分层存储
分层存储是 Amazon 的低成本存储层MSK,可扩展到几乎无限的存储空间,因此构建流数据应用程序具有成本效益。
您可以创建配置有分层存储的 Amazon MSK 集群,以平衡性能和成本。亚马逊将流数据MSK存储在性能优化的主存储层中,直到其达到 Apache Kafka 主题的保留期限。然后,Amazon MSK 会自动将数据转移到新的低成本存储层。
当应用程序开始从分层存储中读取数据时,前几个字节的读取延迟可能会增加。开始按顺序从低成本层读取其余数据时,可能会出现与主存储层类似的延迟。您无需为低成本分层存储预置任何存储,也不需要管理基础设施。您可以存储任意数量的数据,但只需按实际用量付费。此功能与 KIP-405:Kafka 分层存储
以下是分层存储的一些功能:
-
您可以扩展到几乎无限的存储空间,不必猜测如何扩展 Apache Kafka 基础设施。
-
您可以在 Apache Kafka 主题中延长数据保留时间,也可以增加主题存储空间,不必增加代理数量。
-
其提供了持续时间更长的安全缓冲区来应对处理中的意外延迟。
-
您可以使用现有的流处理代码和 Kafka APIs 按精确的生产顺序重新处理旧数据。
-
分区重新平衡速度更快,因为二级存储上的数据不需要跨代理磁盘进行复制。
-
代理和分层存储之间的数据在内部移动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.tiers。
Amazon MSK 集群的分层存储限制和限制
分层存储存在以下约束和限制:
确保在从 Amazon 的 remote_tier 读取数据
read_committed
时未将客户端配置为MSK,除非应用程序正在积极使用交易功能。-
分层存储在 AWS GovCloud (美国)地区不可用。
分层存储仅适用于预置模式集群。
-
分层存储不支持代理大小 t3.small。
-
低成本存储的最短保留期为 3 天。主存储不存在最短保留期。
-
分层存储不支持代理上的多个日志目录(JBOD相关功能)。
-
分层存储不支持压缩主题。确保所有已开启分层存储的主题都将 cleanup.policy 配置为仅限 “” DELETE。
-
可以为单个主题禁用分层存储,但不能禁用整个集群的分层存储。一旦禁用,就无法再为主题启用分层存储。
如果您使用亚马逊MSK版本 2.8.2.tiered,则只能迁移到另一个支持分层存储的 Apache Kafka 版本。如果您不想继续使用支持分层存储的版本,请创建一个新MSK集群并将数据迁移到该集群。
-
该 kafka-log-dirs工具无法报告分层存储数据大小。该工具只会报告主存储中日志段的大小。