学习Apache Kafka概念
Apache Kafka 是一个分布式流平台,由许多公司用于许多批处理工作负载,以及实时数据集成和数据流用例。

下面的列表定义了 Apache Kafka 的部分概念:
代理
Apache Kafka 是一种分布式消息传递系统。 Kafka 集群由一组代理程序组成。 一个集群至少有三个代理程序。

消息
消息是 Kafka 中的数据单位。 每条消息表示为一条记录,由两部分组成:键和值。 键通常用于表示消息相关数据,值是消息的主体。 Kafka 使用的“记录”和“消息”两个术语可以互换。
主题和分区
每个主题都是一个具名消息流。 主题由一个或多个分区组成。 分区上的报文按一个称为偏移量的数字排序。 通过将多个分区分布在代理服务器上,可以提高主题的可扩展性。
如果某个主题的分区不止一个,那么可以将这些分区分布到整个集群中,这样就能并行馈送数据,从而提高吞吐量。 分区的数量也会影响工作负载在使用者之间的均衡。
有关更多信息,请参阅分区领导权。

复制
要提高可用性,可以将每个主题复制到多个代理程序上。 对于每个分区,其中一个代理程序为领导者,其他代理程序为追随者。
复制是通过追随者反复从领导者访存消息来完成的。

同步副本
与分区领导者保持一致的追随者副本是同步副本。 具有同步副本的任何追随者都可以成为领导者,而不会丢失任何消息。
如果分区领导者发生故障,那么会从追随者中选出另一个领导者。 所有副本通常同步。 当副本在发生故障后进行追赶时,暂时不同步是可以接受的。

生产者
生产者是将消息发布到一个或多个主题的客户机应用程序。 生产者可以发布一个或更多主题,并且可以选择用于存储数据的分区。
您还可以配置生产者,通过选择生产者在发布信息时接收确认的级别来优先考虑速度或可靠性。
有关更多信息,请参阅生成消息。

使用者
使用者是从一个或多个主题中读取消息并对其进行处理的客户机应用程序。 使用者的当前位置与分区上最新消息之间的差距称为偏移量滞后。
如果滞后值随时间而增加,那么表示使用者未能跟上。 在短期内,这不是一个问题,但如果超过保留期,消费者最终可能会错过信息。
有关更多信息,请参阅使用消息。

使用者组
使用者组包含一个或多个共同处理主题消息的使用者。 来自单个分区的消息由每个组中的一个使用者进行处理。
无论何时,都仅会将每个分区分配给使用者组中的一个使用者。 这种分配可确保每个分区上的报文按顺序处理。
如果一个组中的分区数量多于消费者数量,一些消费者就会拥有多个分区。 如果消费者数量多于分区数量,一些消费者就没有分区。

更多信息
有关更多信息,请参阅 Apache Kafka 文档。