Kafka 基本概念和术语

1、消息

Record:Kafka 是消息引擎嘛,这里的消息就是指 Kafka 处理的主要对象。

2、主题

Topic:主题是承载消息的逻辑容器,在实际使用中多用来区分具体的业务。在Kafka 中发布订阅的对象是 Topic。

3、分区

Partition:一个有序不变的消息序列。每个主题下可以有多个分区。业务上要保证顺序性,将消息都写到一个分区,由单个消费线程消费即可实现顺序消费。多个分区无法保证消息的全局顺序性

4、消息位移

Offset:表示分区中每条消息的位置信息,是一个单调递增且不变的值。kafka 底层是追加写,所以效率高,所以单调递增,一旦写到磁盘上后,消息的位置就是固定的了

5、副本

Replica:Kafka 中同一条消息能够被拷贝到多个地方以提供数据冗余,这些地方就是所谓的副本。

副本还分为领导者副本和追随者副本。领导者副本对外提供服务,生产者向领导者副本写消息,消费者从领导者副本读消息;追随者副本只是向领导者副本发起请求同步最新的消息。

为啥是追随者副本向领导者副本发起请求而不是领导者副本向追随者推送消息?Kafka 不是 PUSH 模型而是 PULL 模型。

副本是在分区层级下的,即每个分区可配置多个副本实现高可用

6、生产者

Producer:向主题发布新消息的应用程序,可以向一个或者多个主题发送消息。

7、消费者

Consumer:从主题订阅新消息的应用程序,可以同时订阅多个主题的消息。 一个主题可以让若干个 consumer 消费,若干个 consumer 组成一个 consumer group ,一条消息只能被 consumer group 中一个 consumer 消费,若干个 partition 被若干个 consumer 同时消费,达到消费者高吞吐量

8、消费者位移

Consumer Offset:表征消费者消费进度,每个消费者都有自己的消费者位移。正常都是顺序消费一遍的,当然也可以重置消费者位移来达到业务目的。

9、消费者组

Consumer Group:多个消费者实例共同组成的一个组,同时消费多个分区以实现高吞吐。

10、重平衡

Rebalance。消费者组内某个消费者实例挂掉后,其他消费者实例自动重新分配订阅主题分区的过程。Rebalance 是 Kafka 消费者端实现高可用的重要手段。

11、broker

服务代理节点,Kafka 服务实例。 N 个组成一个 Kafka 集群,通常一台机器部署一个 Kafka 实例,一个实例挂了其他实例仍可以使用,体现了高可用。

为什么 Kafka 不像 MySQL 那样允许追随者副本对外提供读服务?

为什么kafka不支持主从分离? - 知乎

相关推荐
写代码的【黑咖啡】12 分钟前
如何在大数据数仓中搭建数据集市
大数据·分布式·spark
SoleMotive.2 小时前
kafka选型
分布式·kafka
小二·3 小时前
MyBatis基础入门《十五》分布式事务实战:Seata + MyBatis 实现跨服务数据一致性
分布式·wpf·mybatis
feathered-feathered6 小时前
Redis基础知识+RDB+AOF(面试)
java·数据库·redis·分布式·后端·中间件·面试
lang201509286 小时前
深入解析Kafka Broker核心读写机制
分布式·kafka
lang201509286 小时前
Kafka高水位与日志末端偏移量解析
分布式·kafka
Tadas-Gao7 小时前
GraphQL:下一代API架构的设计哲学与实践创新
java·分布式·后端·微服务·架构·graphql
lang201509287 小时前
Kafka副本管理核心:ReplicaManager揭秘
分布式·kafka·linq
GGBondlctrl10 小时前
【Redis】从单机架构到分布式,回溯架构的成长设计美学
分布式·缓存·架构·微服务架构·单机架构
编织幻境的妖10 小时前
Zookeeper在大数据集群中的作用详解
大数据·分布式·zookeeper