Kafka基础知识

名词解释

  • 在一套 Kafka 架构中有多个 Producer,多个 Broker,多个 Consumer,每个 Producer 可以对应多个 Topic,每个 Consumer 只能对应一个 Consumer Group。
    整个 Kafka 架构对应一个 ZooKeeper 集群,通过 ZK 管理集群配置,选举 Leader,以及在 Consumer Group 发生变化时进行 Rebalance。

  • Broker:消息中间件处理节点,一个kafka节点就是一个Broker

  • Producer:消息生产者。向Broker发送消息的客户端

  • Consumer:消息消费者。从Broker接收消息的客户端

  • Consumer Group:消息消费者组。每个Consumer都属于一个特定的Consumer Group,一条消息可以发送给多个Consumer Group,但每个Consumer Group中只能有一个Consumer消费该消息

  • Topic:消息的主题。kafka根据Topic对消息进行分类

  • Partition:物理上的概念(对应一个日志文件),一个Topic可以分为多个Partition,每个Partition内部是时间有序的,其编号成为Offset(long型数字)。

生产

  • Producer对消息的Key值做hash然后做分区数量取余后,放入余数分区。如果消息没有Key值则轮询放入每个Partition。也可以手动确定Partition号

消费

  • 推送模型(Push):Broker记录消息状态,消息给消费者后,标记为已消费
  • 拉取模型(Pull):消费者自己控制消费
  • 消息存储在log文件后,Consumer就可以进行消费了。Consumer主动的去找leader(kafka集群)拉取消息。

网络模型

  • Client是单线程,Server是多线程

知识点

  • ZooKeeper管理Broker和Consumer
  • Kafka 一个 Topic 下面的所有消息都是以 Partition 的方式分布式的存储在多个节点上。
  • Partition结构:

每个Partition的文件夹下面会有多组Segment文件。Partition对应的LogSegment 文件由两部分组成,分别为“.index”文件和“.log”文件,分别表示为 Segment 索引文件和数据文件(二分法查找)。

  • Message结构:

上面说到log文件就实际是存储Message的地方,producer往kafka写入的也是一条一条的Message。
消息主要包含:消息体(内容,被压缩过)、消息大小(4byte,描述消息的大小)、offset(8byte,有序的id号,确定在parition内唯一的位置)、压缩类型。

https://www.cnblogs.com/sujing/p/10960832.html
https://www.jianshu.com/p/4bf007885116

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值