kafka概念讲解

特别说明

这里会有一些关于rocketmq的概念引入,希望大家在阅读时,要有一定的rocketmq理解。

生产者

投递消息者 producer 这个与rocketmq相同

消费者

消费消息者 Consumer 这个与rocketmq相同

broker

对应的是kafka里面的一个个部署进程。一般一个节点只会部署一个broker进程。 这个与rocketmq相同。但是kafka没有brokerName的说法,所以kafka只有通过broker来区分。所以可以理解broker只有一个brokerName

注意:kafka的broker没有主broker和从broker的概念

Replica

分区 这个是指相同的数据拷贝到多台机器上。分区分为主分区 和副本分区。在rocketmq对应的是[brokerName相同] 主broker(broker=0)和从broker(broker>0)。

与rocketmq的差别:

1、这个相当于rocketmq每个topic下的队列

2、这里要特别留意kafka topic的两个配置:

 partions

  主题分区数 。

replication-factor

  用来设置主题的副本数。每个主题可以有多个副本,副本位于集群中不同的broker上,也就是说副本的数量不能超过broker的数量,否则创建主题时会失败

 

每一个分区都有一个broker为leader,它负责该分区内的所有读写操作,其他broker 被动的复制leader broker。如果leader broker 挂了,那么其他broker中的一个将自动成为该分区的新leader。

Replicas: 0,1,2 表示该分区保存在 broker 0 、 broker 1和 broker 2下。

Isr: 0,1,2 表示当前我们可以在 broker 0 、 broker 1和 broker 2 下访问该分区,如果 broker 0挂了,那就像这样子了 Isr: 1,2。

所以kafka的三层消息架构如下:

第一层是主题层,每个主题可以配置 M 个分区,而每个分区又可以配置 N 个副本。

第二层是分区层,每个分区的 N 个副本中只能有一个充当领导者角色,对外提供服务;

其他 N-1 个副本是追随者副本,只是提供数据冗余之用。

第三层是消息层,分区中包含若干条消息,每条消息的位移从 0 开始,依次递增。

最后,客户端程序只能与分区的领导者副本进行交互。

Log

这个就是消息日志,与rocketmq对应的就是CommitLog。commitLog是由一个个的文件组成,这个文件对应于kafka里面的数据就是 日志段(Log segment).kafka对磁盘压力的回收就是针对日志段进行的。

消费位移

Consumer Offset。表示消费者消费进度,每个消费者都有自己的消费者位移。

各个术语的展示图

 

位移保存实现不一样

rocketmq是使用文件保存

kafka是还是使用自己的topic去保存。

Controller broker

controller broker 作用类似于rocketmq的nameServer ,但是它不是像nameServer独立一个进程存在,而是在broker中存在。集群中只会有一个Controller broker

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值