Kafka相关知识点

Kafka相关知识点

kafka是分布式发布-订阅消息系统,是一个分布式,可划分的,冗余备份的持久性的日志服务,主要用于处理流式数据

为什么要使用kafka,为什么要使用消息队列

缓冲和削峰:尚有数据有突发流量,或下游没有足够多的机器来保证冗余,kafka在中间起到一个缓冲的作用,把消息暂存在kafka总分,下游服务就可以按照自己的节奏进行慢慢处理。
解耦和扩展性:消息队列可作为一个接口层,解耦重要的业务流程,只需要遵守约定,针对数据编程即可获取扩展能力。
冗余:可采用一对多的方式,一个生产者发布消息,可以被多个订阅topic的服务消费到,供多个毫无关联的业务使用。
健壮性:消息队列可以堆积请求,所以即使消费端业务短时间死掉,也不会影响主要业务的正常进行。
异步通信:消息队列允许用户把消息放入队列,但不立即处理它,想向队列中放多少消息就放多少消息,然后在需要的时候再去处理他们。

kafka的相关术语

在这里插入图片描述produce不在zookeeper中注册,消费者和kafka在zookeeper中注册。
由图可得,每一台kafka服务器为一个broker,broker中可以容纳多个topic,每个topic又有多个分区,分区可以存储在不同的broker,每个分区都有一个leader和多个follower副本。为保证安全,leader副本和follower副本一般放在不同的broker,这样一个broker宕机,其他broker上的follower或leader还存活,通过controller选举新的leader,还可以继续工作

broker

broker是消息代理,producer往broker里指定的topic中写消息,consumer从broker里面拉取指定topic的消息,然后进行业务处理,broker在中间起一个代理保存消息的中转站。一台kafka服务器就是一个broker,也就是一个代理,一个broker可以容纳多个topic。一个集群由多个broker组成,每个代理有一个非负整id,且在整个集群中id唯一

topic:

消息的分类,生产者将消息发送到特定主题,消费者订阅该主题或主题的分区消费

patition分区

一个主题可分成多个分区,每个分区由一系列有序,不可变的消息组成,是一个有序队列,每个分区物理上可对应一个文件夹,分区的命名规则为主题名_分区编号。分区编号中只有一个副本对外提供服务,通过zookeeper。

zookeeper的作用

zookeeper是一个分布式的协调组件,早期用zk做meta信息存储,consumer的消费状态,group的管理记忆offset的值,考虑到zk本身的因素以及可能存在单点问题,新版本中弱化了zk的作用,新consumer使用了kafka内部的group coordination协议,减少了对zk的依赖。但broker依然依赖zk,zk在kafka中还用来选举controller和检测broker是否存活等。

replica副本:leader,follower

同一个分区有多个副本,目的是为了冗余,一高可用性,需要保证副本的一致性。kafka会选分区的一个副本作为leader副本,其他作为follower副本,只有leader副本处理读写,follower只从leader上复制数据

offset偏移量

发布到分区的消息会追加到日志文件的尾部,每条消息在日志文件中的位置都会对应一个按序递增的偏移量,偏移量不表示消息在磁盘的位置,kafka几乎不允许随机读写,消费者可以指定偏移量开始位消费。

日志段

日志被划分为多个日志段,是日志对象分片的最小单位,和日志对象一样,日志段也是逻辑概念,一个日志段对应磁盘上一个具体日志文件和两个索引文件。日志以.log结尾,.index偏移量索引文件,.timeindex消息时间戳索引文件

消费者和消费者组

消费者通过拉方式获取数据,每个消费者属于一个消费者组,同一个主题消息只能被消费者组中的一个消费者消费。
一个topic为一类消息,每个topic被分成多个partition,每个par

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值