kafka基本概念

一. 分区模型

Kafka集群由多个消息代理服务器( broker server )组成,发布至Kafka集群的每条消息都有一个类别,用主题( topic )来表示 。 通常,不同应用产生不同类型的数据,可以设置不同的主题。 一个主题一般会有多个消息的好阅者,当生产者发布消息到某个主题时,订阅了这个主题的消费者都可以接收到生产者写人的新消息 。

二. 消费模型

Kafka集群为每个主题维护了分布式的分区( partition )日志文件,物理意义上可 以把主题看作分区的日志文件( partitioned Jog )。 每个分区都是一个有序的、不可变的记录序列,新的消息会不断追加到提交日志( commit log )。 分区中的每条消息都会按照时间顺序分配到一个单调递增的顺序编号, 叫作偏移盘( offset ),这个偏移量能够唯一地定位当前分区中的每一条消息 。

Kafka比传统消息系统有更强的顺序性保证 , 它使用主题的分区作为消息处理的并行单元 。 Kafka以分区作为最小的粒度,将每个分区分配给消费组中不同的而且是唯一的消费者,并确保一个分区只属于一个消费者, 即这个消费者就是这个分区的唯一读取线程。 那么,只要分区的消息是有序的,消费者处理的消息顺序就有保证。 每个主题有多个分区,不同的消费者处理不同的分区,所以Kafka不仅保证了消息的有序性,也{眠。了消费者的负载均衡。
三. 消费模型

推送模型:由消息代理记录消费者的消费状态 。 消息代理在将消息推送到消费者后 , 标记这条消息为已消费,但这种方式无法很好地保证消息的处理语义 。

拉取模型:由消费者向己记录消费状态,每个消费者五相独立地顺序读取每个分区的消息 。

三. 分布式模型

Kafka每个主题的多个分区日志分布式地存储在Kafka集群上,同时为了故障容错,每个分区都会以副本的方式复制到多个消息代理节点上 。 其中一个节点会作为主副本( Leader ),其他节点作为备份副本( Follower ,也叫作从副本)。 主副本会负责所有的客户端读写操作,备份副本仅仅从主副本同步数据 。 当主副本 IH 现故障时,备份副本中的一个副本会被选择为新的主副本 。 因为每个分区的副本中只有主副本接受读写,所以每个服务端都会作为某些分区的主副本,以及另外一些分区的备份副本 ,
这样Kafka集群的所有服务端整体上对客户端是负载均衡的 。
 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值