Kafka核心总述

Kafka核心总结

3.1Kafka副本作用

默认由broker端参数default.replication.factor控制的分区设置一个副本,通过修改默认值或在命令行创建topic时指定replication-factor参数控制副本数量。通过增加消息副本的数量可以使消息冗余储存,提高数据可靠性;还可以提高其服务可用性,副本选举机制会使再broker上的leader挂掉,就近原则选举follower副本为新的leader,从而继续对外提供读写服务。

3.2读写分离

为保证Kafka数据读写一致性,生产端所有的读写请求都是由leader处理,follower副本仅从leader副本出异步拉取消息,将消息进行同步。

3.3副本集和

ISR(In-Sync Replicas)副本集和或副本同步队列,除此之外还有OSR(Out-Sync Replicas)、AR(Assigned Replicas)概念。AR=ISR+OSR。
ISR表示分区中正在与leader副本进行同步的replica列表,且必定包含leader副本。
ISR列表是持久化在Zookeeper当中的,任何ISR列表中的副本都有资格参与leader选举。它是动态变化的,并不是所有的分区副本都在ISR列表中,有参数replica.lag.time.max.ms控制,参数含义是副本同步落后于leader的最大时间间隔,默认10s,当某一follower副本中消息比leader中的消息延迟超过十秒,将会排除在ISR列表当中。

3.4Unclean leader选举

参数unclean.leader.election.enable控制是否允许(OSR)非同步副本参与leader选举;开启,若ISR为空,将会从OSR中选举新的leader,这个过程称之为Unclean leader选举。
CAP理论,即一个系统不可能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition Tolerance)中的两个。所以在这个问题上,Kafka 赋予了我们选择 C 或 A 的权利。

4.1控制器选举

当集群中的任意broker启动时,都会尝试去Zookeeper中创建controller节点,第一个成功创建的broker则会被指定为控制器,其它broker则会监听该节点的变化,当运行中的控制器突然宕机或者意外终止时,其它broker'能够迅速的感知并尝试创建新的控制节点,创建成功后broker则会成为新的控制器。

4.2控制器功能

控制器的主要功能是管理和协调Kafka集群,Kafka控制器主要做的事情具体有:
	主题管理:创建、删除topic,以及增加topic分区操作都是由控制器执行。
	分区重分配:执行Kafka的reassign脚本对topic分区重分配操作。
	Preferred leader选举:Preferred replica(副本优先),表示的是分配副本中的第一个副本。Preferred leader选举就是当leader失败的情况下会优先窜则Preferred副本为新的leader。
	集群成员管理:控制器能够监听新的broker的增加,broker的主动关闭或者被动宕机,进而做其他工作。利用Zookeeper的ZNode模型和Watcher机制,控制器会监听Zookeeper中/broker/ids下临时节点的变化。
	数据服务:控制器上保存了最全的集群元数据信息,其他所有的broker会定期接受控制器发来的元数据更新请求,从而更行其内存中的缓存数据。
控制器是Kafka的心脏,在0.11之后对控制器进行了重构,把控制器内部多线程设计改成了单线程加时间队列的方案,消除了多线程的资源消耗和线程安全问题,另一个改进是之前同步操作Zokeeper改为了异步操作,消除了Zookeeper端的性能瓶颈,大大提高了控制器的稳定性。

附赠常见kafka面试32题(过往记忆大数据)
https://www.iteblog.com/archives/2605.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值