Kafka中的专业术语都有哪些

上一篇 << 下一篇 >>>Kafka的设计原理介绍


Broker:kafka集群中包含的服务器节点
Topic:消息的类别。每条消息都属于某个topic,不同的topic之间是相互独立的,即kafka是面向topic的。
massage: Kafka中最基本的传递对象。
Partition:topic物理上的分组,一个topic可以分为多个partition,每个partition是一个有序的队列,类似于redis里的卡槽。(一个Broker就是表示一个区域)
Segment:partition物理上由多个segment组成,每个Segment存着message信息
Producer : 生产者,向MQ投递消息
Consumer : 消费者,订阅topic并消费message, consumer作为一个线程来消费
Consumer Group:消费者组,对我们消费者实现分组,一个Consumer Group包含多个consumer
Offset:偏移量,理解为消息partition中的索引即可

controller:kafka集群中的其中一个服务器,用来进行 leader election 以及 各种 failover。
zookeeper:kafka通过zookeeper来存储集群的meta信息。

replica:partition的副本,保障 partition 的高可用
leader:replica中的一个角色, producer和consumer只跟leader交互。
follower:replica中的一个角色,从leader中复制数据。

主题和队列队列有啥区别
队列是一个数据结构,遵循先进先出
主题没有规范
在rocketmq中主题是对队列做了一层封装

其他说明

Message是按照topic来组织的,每个topic可以分成多个partition(对应server.properties/num.partitions)。

partition是以文件的形式存储在文件系统中,位置由server.properties/log.dirs指定,其命名规则为-

partition中的每条记录(message)包含三个属性:offset, messageSize和data。其中offset表示消息偏移量;messageSize表示消息的大小;data表示消息的具体内容。

partition可能位于不同的broker上,partition是分段的,每个段是一个segment文件。segment的常用配置有:

一个topic物理上分为多个partition,位于不同的broker上。如果没有 replica,一旦broker宕机,其上所有的patition将不可用。
每个partition可以有多个replica(对应server.properties/default.replication.factor),分配到不同的broker上
其中有一个leader负责读写,处理来自producer和consumer的请求;
其它作为follower从leader pull消息,保持与leader的同步。

在kafka中提出的Rebalance协议 有两种分配策略 Range\round-robin


推荐阅读:
<<<消息中间件的核心思想
<<<消息中间件常见问题汇总
<<<基于Netty简单手写消息中间件思路
<<<消息队列常用名词与中间件对比
<< << << << << << << << << << << << << << << << << << << << << << << << << << << << << << << <<

你可能感兴趣的:(Kafka中的专业术语都有哪些)