关于kafka的理解

1、相关名词:

  • producer:生产者
  • broker:kafka中间件节点,多个中间件节点组成kafka集群
  • topic:主题,将kafka消息进行归类,消费者只会消费topic相同生产者产生的消息
  • partition:物理上的概念(可以理解为消息队列),一个topic可以分配多个partition,每个partition内部是有序的
  • consumer:消费者
  • consumerGroup:消费者组(确保一个partition中的消息只被同一group中的一个consumer消费,避免重复消费)
  • zookeeper:kafka通过zoopeeker管理集群配置
  • HW:高水位,即:consumer最多能消费到的offset
  • LEO:每个partition的log最后一条Message的位置
    在这里插入图片描述

2、Partition的leader选举
Partition会跟zoopeeker保持心跳,一旦partition(leader)所在的broker挂掉,zoopeeker会收到消息,并通知leader的副本进行leader选举(个人理解是:谁先在zoopeeker上注册谁会成为leader)

3、kafka的partition副本同步机制
下图为kafka消息处理机制(图片引用:https://www.cnblogs.com/aidodoo/p/8873163.html,如对作者造成影响请告知,立马删除)

  • 为保证消息写入leader之后,所有副本没能同步完成,leader就挂掉了重新选举leader之后,造成消息丢失,只有等所有副本完成消息同步之后消息才能被消费者消费(这就是为什么会设置HW与LEO的原因)
  • 当然如果副本一直不能同步完成,leader也不会一直等下去,默认如果副本消息落后leader 10s就会将该folloer从ISR中剔除(即:放弃该follower)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值