kafka相关术语/名词解释

kafaka主要的功能就是提供一套完备的消息发布与订阅的解决方案。

主题(Topic):发布订阅的对象是主题。每个业务,每个消息或者是每类数据都能创建专属的主题。

生产者(Producer):向主题发布消息的客户端叫做生产者。生产者程序通常持续不断的向一个或者多个主题发送消息。

消费者(Consumer):订阅这些主题的客户端程序叫做消费者。消费者可以同时订阅多个主题的消息。

客户端(Client):生产者消费者都被称为客户端。

服务端:kafaka的服务端由被称为Broker的的服务进程构成。一个集群由多个Broker组成。

Broker:负责处理客户端发过来的请求,以及对消息进行持久化。多个Broker可以放在同一台机器上,但是更常见的做法是将不同的Broker分散运行在不同的机器上,这样做的主要目的就是,如果集群中有一台机器宕机,即使它上面的所有Broker进程都挂掉了,其他机器上的Broker也依然可以正常的向外提供服务,这就是kafaka高可用的手段之一。

分区(Partitioning):将每个主题划分成多个分区(Partition),每个分区是一组有序的消息日志。生产者生产的每条消息只会被发送到一个分区中,也就是说如果向一个双分区的主题中发送一条消息,那么这条消息要么在0区,要么在1区。所以kafaka的分区编号是从0开始的。

副本(Replication):副本实在分区这个层级定义的,意思就是说副本是对每个分区的备份。备份的思想很简单,就是把相同的数据拷贝到多台机器上,而这些数据相同拷贝在kafaka中就被称为副本(Replica)。副本的数量是可配置的。副本有不同的角色,分为:领导者读本(Leader Replica)和追随者副本(Follow Replica)。领导者副本对外提供服务,领导者服务只是被动的追随领导者副本而已,不能与外界进行交互。[副本的工作机制:生产者向领导者副本写消息;消费者从领导者副本读取消息。至于追随者所作的事情就是:向领导者副本发送请求看,请求领导者把最新生产的消息发送给它,这样它就能保证与领导者的同步]

消息位移(offset):生产者向分区写入消息,每个消息在分区中的位置信息有一个叫(Offset)的数据来表征。分区位移总是从0开始,依次累加。

kafaka的三层消息架构

1:第一层是主题层,一个主题可以配置多个分区,一个分区可以配置多个副本

2:第二层是分区层,每个分区可以有多个副本,只有一个副本充当领导者副本的角色,对外提供服务。其它副本都是追随者副本,只提供数据的冗余只用。

3:第三层是消息层。分区中包含消息,每条消息在分区中都有对应的位移,位移从0开始,一次递增,一个消息只能存在于一个分区中。

4:客户端只能和分区中的领导者副本进行交互

消费者组:多个消费者实例组成一个消费者组来消费一组主题。这组主题中的每个分区都只会被一个消费者实例消费,其他消费者实例不能消费它。[引入消费者组的意义:主要是提升消费者的吞吐量,多个消费者实例同时消费,加速整个消费者端的吞吐量(TPS:每秒钟request/事务 数量)]

重平衡(Rebalance):消费者组内的实例不仅可以“瓜分”主题中的消息,而且还可以彼此协助。假如组内有一个消费者实例挂了,那么kafaka能够自动检测到,并将这个实例之前负责的分区分配给其他的消费者,这就是重平衡。

消费者位移(Consumer Offset):每个消费者都要记录在消费过程中,消费到那个分区中的哪个位置(一个消费者可能会消费一个或者多个分片)。

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值