kafka的一点记录

1.kafka 主要有哪些角色

每一个kafka节点称为一个broker,多个broker节点组成kafka集群。每个broker 上可以存储多个topic的分区partition,

每个分区可以有n备份,其中n可以扩展。

kafka的消费者consumer,多个consumer可以组成一个consumer grop。但是一条消息只会被同一个consumer group的一个consumer消费一次,可以被不同的consumer group 重复消费。

在kafka集群中,有三种类似leader的角色:

  • broker 的leader 其选举有zk 控制,选举出来的东西称为controller
  • partition 的learder 其选举由controller 根据zk 中的ISR 进行选举(leader 负载 partition的读写)
  • coordinator ,其选举方式,默认由保存offset的broker 担任,宕机后,可由任一broker 进行选举

(coordinator 负责 消费者消费partition的负载均衡)

2.kafka的容灾备份

kafka的容灾备份是以topic为单位的,每一个topic 可以有n个分区,每个区分可以有m个备份,这些备份分布在各个broker中。

生产者再插入队列的时候,可以指定策略来保证该消息是否要同步到各个备份才算成功。

当某个partition leader 挂了时候,这时候会在ISR中重新选择一个leader,保证可用性。

当某个kafka 因异常宕机重启的时候,它上面的数据会重新同步一份。如果采用的是kafka的优雅停机,则可以进行增量的更新。

3.kafka的存储机制

4.kafka的消费机制

一个消费者可以同时消费多个分区,但是一个分区只能被一个消费者消费。消费者在消费的时候,可以自动设置提交(poll 的时候就会自动提交),也可以主动进行异步或者同步的提交。消费者可以指定消费的分区及offerset,这种情况下则不受负载均衡的控制。消费者的提交,其实是提交到了一个特定的topic。由该topic记录某一分区消费的offetset具体情况。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值