本文汇总创建实例前后常见的选型与规格问题,供您参考。
消息队列 Kafka版提供多种实例规格供您选择,你可以根据业务的读写流量峰值、所需的存储空间大小和分区数量估算计算规格与存储规格。
- 购买时选择网卡读流量峰值和网卡写流量峰值中的较大值进行评估。
- 建议按实际流量增加 30% 进行评估,再根据其它参数选择适合的实例规格。
- 实际占用的存储空间=业务消息体积 × 副本数 ÷ 75%。
- 支持多副本存储,存储空间包含所有副本存储空间总和。
- 因部分存储将用于日志和元数据数据存储,冗余消息也可能带来额外的空间占用,实际可用存储会小于设置的存储规格,建议预留 25% 左右的存储空间。
- 根据实际的业务需求设置分区数量。每个计算规格提供一定的免费分区额度,您也可以选购更多的分区。
创建 Kafka 实例时支持设置数据存储的云盘类型。可设置为 ESSD_FlexPL 或 ESSD_PL0。相比 ESSD_PL0,ESSD_FlexPL 拥有更高的 IOPS 性能,在消息高吞吐以及大量堆积等场景下性能更加稳定。关于不同存储类型的性能说明,请参考云盘规格。 - 对于峰值流量超过 100MB/s 的规格,应使用 ESSD_FlexPL。
- 创建实例后不支持修改存储类型,请谨慎选择云盘类型。
火山引擎消息队列 Kafka版兼容开源 Kafka 2.2.2 和 2.8.2 版本,推荐您使用对应版本的 Kafka 客户端。
消息队列 Kafka版在版本上完全向下兼容,您也可以选择使用其他版本的开源 Kafka 客户端,例如自建 0.x、1.x 和 2.x 版本的 Kafka 项目,均可以选择 2.x 版本的 Kafka 实例。具体的版本兼容性如下:
说明
消息队列 Kafka版不保证更高客户端版本的功能兼容性,因为业务侧可能使用了更高客户端版本的特有功能,例如 mirrormaker2 等。
消息队列 Kafka版支持多可用区部署 Kafka 实例,即支持多 AZ。多可用区部署的实例具备更强的容灾能力,全方位保障集群数据的可靠性和服务的可用性。
在购买 Kafka 实例时,部署方式设置为多可用区部署,并选择 3 个可用区即可实现跨 AZ 容灾。创建实例后,不可修改实例的部署方式,即单可用区部署的实例无法切换为多可用区部署。
对于已购买的 Kafka 实例,您可以在 Kafka 实例的实例详情页签中基本信息区域找到可用区一行,查看可用区数量。如果可用区数量大于 1,表示该实例为多可用区部署的实例。
火山引擎消息队列 Kafka版支持开源 Apache Kafka 提供的 TCP 协议所有语言客户端 SDK,并为您提供 Java、Go、Python 等各种语言的代码示例以供参考,详细说明请参考概述。 火山引擎消息队列 Kafka版支持自定义实例和 Topic 粒度的最大消息大小,超出限制的消息无法推送成功。最大消息大小(MessageMaxByte)默认为 10MB,支持设置为 1~12MB。
调整最大消息大小的方式如下:
消息队列 Kafka版服务端支持收发压缩消息。使用压缩消息之前,您需要在消息队列 Kafka版的客户端启用消息压缩。消息队列 Kafka版支持的消息压缩格式及消耗如下。
火山引擎消息队列 Kafka版暂不支持延迟消息。
消息队列 Kafka版暂未限制 Topic 的数量。但是每个 Topic 至少包含一个分区,每个实例规格提供的分区数量额度不同,如果当前已创建的 Topic 占用了所有分区额度,则无法再创建新的 Topic。您需要购买更多分区,或升级实例规格后才能再次创建 Topic。
消息队列 Kafka版提供多种实例规格,每个实例规格对应的分区数量额度不同。各个规格均提供不同数量的免费分区额度,您也可以根据业务需求购买更大分区额度。各个规格对应的分区数量上限请参考下表。
实例超限,创建实例报错 “The InstanceNum has exceeded quota %!s(MISSING)”
默认情况下,您可以在每个地域中创建 8 个 Kafka 实例,每个账号在每个地域中的所有实例存储容量总和最大为 90TiB,否则创建实例时报错The instance_num/storage_sum has exceeded quota。如需提高配额,请在配额中心提交申请,例如申请提高每个地域下的最大实例数量(InstanceNum),最高可调整至 16 个。