基本概念

本文说明云消息队列 Kafka 版涉及的专有名词和术语,帮助您更好地理解相关概念并使用该产品。

Apache Kafka

一款开源的分布式数据流处理平台,可以实时发布、订阅、存储和处理数据流。更多信息,请参见Apache Kafka

云消息队列 Kafka 版

一款由阿里云提供的Apache Kafka全托管服务,具备免部署、免运维、低成本、高弹性、高可靠、高吞吐等优势。更多信息,请参见什么是云消息队列 Kafka 版?

ZooKeeper

一款开源的分布式应用程序协调服务。在云消息队列 Kafka 版中,ZooKeeper主要用于集群管理、配置管理、Leader选举。ZooKeeper是云消息队列 Kafka 版的一部分,您无需感知ZooKeeper。

Broker

一个云消息队列 Kafka 版服务端节点。云消息队列 Kafka 版提供全托管服务,会根据您的实例的流量规格自动变化Broker的数量和配置。您无需关心具体的Broker信息。

集群

由多个Broker组成的集合。

实例

一个独立的云消息队列 Kafka 版资源实体,对应一个集群。

VPC实例

仅提供专有网络VPC接入点,只能通过专有网络VPC访问。

公网/VPC实例

提供公网接入点和专有网络VPC接入点,可以通过公网访问,也可以通过专有网络VPC访问。

升级大版本

跨版本升级,例如将云消息队列 Kafka 版实例的版本从0.10.x升级至2.x。更多信息,请参见升级实例版本

升级小版本

非跨版本升级,例如将云消息队列 Kafka 版实例的版本从0.10升级至0.10.2,或者从0.10.2升级至0.10.2内核优化版。更多信息,请参见升级实例版本

接入点

Producer或Consumer连接云消息队列 Kafka 版时使用的地址,由Broker的IP地址和端口号拼接而成,格式为Broker的IP地址:端口号,或由云消息队列 Kafka 版实例域名和端口号拼接而成,格式为实例域名:端口号。更多信息,请参见接入点对比

消息

云消息队列 Kafka 版中信息传递的载体。消息可以是网站的页面访问、服务器的日志,也可以是和CPU、内存相关的系统资源信息,但对于云消息队列 Kafka 版,消息就是一个字节数组。

消息保留时长

在磁盘容量充足的情况下,消息的最长保留时间。

  • 磁盘容量不足(即磁盘水位达到85%)时,将提前删除旧的消息,以确保服务可用性。
  • 默认值为72小时,取值范围为24小时~480小时。

最大消息大小

云消息队列 Kafka 版能收发的消息的最大值。

  • 消息的最大值上限为10 MB,不区分标准版实例和专业版实例。
  • 修改该配置前,请确认修改值是否匹配生产和消费客户端相应配置。

发布/订阅模型

一种异步的服务间通讯模型。发布者无需了解订阅者的存在,直接将消息发送到特定的主题。订阅者无需了解发布者的存在,直接从特定的主题接收消息。云消息队列 Kafka 版支持发布/订阅模型。更多信息,请参见云消息队列 Kafka 版的发布/订阅模型

订阅关系

Topic被Group订阅的情况。云消息队列 Kafka 版支持查看订阅了指定Topic的在线Group的情况,非在线Group的情况无法查看。

Producer

云消息队列 Kafka 版发送消息的应用。

Consumer

云消息队列 Kafka 版接收消息的应用。

Group

一组具有相同Group ID的Consumer。当一个Topic被同一个Group的多个Consumer消费时,每一条消息都只会被投递到一个Consumer,实现消费的负载均衡。通过Group,您可以确保一个Topic的消息被并行消费。

Topic

消息的主题,用于分类消息。

Topic引流

云消息队列 Kafka 版集群横向扩容完成后,使Topic流量重新均匀分布到扩容后的集群上的行为。更多信息,请参见Topic引流

分区

云消息队列 Kafka 版中的分区数是指一个主题(Topic)被划分为的子数据集的数量。每个分区都是一个有序的消息队列,可以独立地进行读写操作。分区数的选择通常根据吞吐量和并发性能的需求来决定。

副本数

云消息队列 Kafka 版允许为每个分区创建多个副本,以提供数据冗余和高可用性。副本数是指每个分区存在的副本数量。副本数的选择通常是根据可用性和容错能力的需求来决定。较多的副本数可以提高可用性和数据冗余,但也会增加存储和网络开销。默认单个分区有三个副本即副本因子为3。

分区副本数

分区副本数是分区实际存在的副本数量。它是分区数和副本因子之间的乘积。例如,如果一个主题(Topic)有10个分区,每个分区有3个副本,那么该主题的分区副本数就是30。分区副本数影响着整个Kafka集群的存储和吞吐量能力。较高的分区副本数可以提高故障容忍性和读取性能,但也会增加网络和存储开销。

位点

消息到达分区时被指定的序列号。

最小位点

分区的最小位点,即当前分区的首条消息的位点。如何查看当前分区的最小位点,请参见查看分区状态

最大位点

分区的最大位点,即当前分区的最新消息的位点。如何查看当前分区的最大位点,请参见查看分区状态

消费位点

分区被当前Consumer消费了的消息的最大位点。如何查看消费位点,请参见查看消费状态

最近消费时间

Group最近消费的消息被发布到云消息队列 Kafka 版服务端的存储时间。如果消费没有堆积,那么这个时间接近发送时间。

堆积量

当前分区下的消息堆积总量,即最大位点减去消费位点的值。堆积量是一个关键指标,如果发现堆积量较大,则Consumer可能产生了阻塞,或者消费速度跟不上生产速度。此时需要分析Consumer的运行状况,尽力提升消费速度。您可以清除所有堆积消息,从最大位点开始消费,或按时间点进行位点重置。具体操作,请参见重置消费位点

Local存储

使用原生Apache Kafka的ISR复制算法的存储引擎。如果您有特殊需求,例如Compact、幂等、事务、分区顺序消息等,建议您选择Local存储。更多信息,请参见存储引擎对比

云存储

使用阿里云云盘算法的存储引擎,充分发挥阿里云底层存储优势,其弹性伸缩、可靠性、可用性、成本都要优于Local存储。因此,在绝大多数情况下,建议您使用云存储。更多信息,请参见存储引擎对比

cleanup.policy

日志清理策略。当您选择了Local存储(仅专业版实例支持在创建Topic时将存储引擎类型选择为Local存储,标准版暂不支持。)时,才需配置日志清理策略。云消息队列 Kafka 版支持以下日志清理策略:

  • Delete:默认的消息清理策略。在磁盘容量充足的情况下,保留在最长保留时间范围内的消息;在磁盘容量不足时(一般磁盘使用率超过85%视为不足),将提前删除旧消息,以保证服务可用性。

  • Compact:使用Kafka Log Compaction日志清理策略。Log Compaction清理策略保证相同Key的消息,最新的value值一定会被保留。主要适用于系统宕机后恢复状态,系统重启后重新加载缓存等场景。例如,在使用Kafka Connect或Confluent Schema Registry时,需要使用Kafka Compact Topic存储系统状态信息或配置信息。

    重要

    Compact Topic一般只用在某些生态组件中,例如Kafka Connect或Confluent Schema Registry,其他情况的消息收发请勿为Topic设置该属性。具体信息,请参见云消息队列 Kafka 版Demo库

普通消息

默认情况下,保证相同Key的消息分布在同一个分区中,且分区内消息按照发送顺序存储。集群重启或者宕机时,会导致极少量乱序。更多信息,请参见存储引擎对比

分区顺序消息

默认情况下,保证相同Key的消息分布在同一个分区中,且分区内消息按照发送顺序存储。集群宕机时,不会造成消息乱序。但是会出现部分分区发送消息失败的情况,等到宕机机器重新上线后即可恢复正常。更多信息,请参见存储引擎对比

Connector

云消息队列 Kafka 版的组件,用于云消息队列 Kafka 版和其他阿里云服务之间的数据同步。更多信息,请参见Connector概述

标签

用于识别云消息队列 Kafka 版资源。您可以将作用相同的云消息队列 Kafka 版的资源归类,便于搜索和资源聚合。更多信息,请参见标签管理

RAM

阿里云提供的管理阿里云用户身份与阿里云资源访问权限的服务。RAM只针对云消息队列 Kafka 版控制台和API操作,客户端使用SDK收发消息与RAM无关。更多信息,请参见权限控制概述

ACL

云消息队列 Kafka 版提供的管理SASL用户和客户端使用SDK收发消息权限的服务,和开源Apache Kafka保持一致。ACL只针对客户端使用SDK收发消息,与云消息队列 Kafka 版控制台和API操作无关。更多信息,请参见权限控制概述