Kafka 写入原理 读原理 生产发送ack Isr 高水位

Kafka是由Apache软件基金会开发的一个开源流处理平台,用Scala和Java编写,是一个高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。以下是关于Kafka的一些基本原理和概念的解释:

  1. 写入原理:
  • Kafka的写入操作主要是将数据发送到指定的topic的partition中。
  • 当生产者发送消息时,它会根据消息的key和partition的数量来决定将消息发送到哪个partition。如果没有指定key,那么Kafka会采用轮询的方式将数据发送到各个partition。
  • Kafka的写入操作是异步的,生产者将消息发送到broker后,broker会立即返回一个ack(确认)消息给生产者,表示消息已经被接收。但是此时消息可能还没有被写入到磁盘中,只是被暂存在内存中。
  • Kafka使用了一种叫做“日志段”(Log Segment)的数据结构来存储消息。每个partition都由多个日志段组成,每个日志段都包含了一定数量的消息。当新的消息到来时,Kafka会将其追加到最新的日志段的末尾。
  • 为了保证数据的可靠性,Kafka还会将消息写入到磁盘中。这个过程是异步的,由后台线程负责完成。当消息被写入到磁盘后,对应的日志段就会被标记为“可刷盘”(flushable),表示该日志段的数据可以被持久化到磁盘上。
  1. 读原理:
  • Kafka的读取操作主要是从指定的topic的partition中读取数据。
  • 消费者会向Kafka broker发送fetch请求,指定要读取的topic、partition、offset等信息。
  • broker会根据消费者的请求,从对应的partition中读取数据,并返回给消费者。
  • Kafka支持多种读取模式,包括单线程读取、多线程读取、以及基于消费者组的读取等。消费者可以根据自己的需求选择合适的读取模式。
  1. 生产发送ack:
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值