Kafka基础介绍和名词解释

Kafka是一个高吞吐的分布式消息系统,采用消息队列机制实现系统解耦合、压力缓冲和异步通信。其核心特性包括消息的有序存储、分区与复制、消费者组模型以及高吞吐和持久性保障。Kafka的producer、consumer和broker构成其基本结构,消息存储在磁盘并按时间策略删除,消费者通过offset维护消费进度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 kafka是一个高吞吐的分布式消息系统,底层使用消息队列机制。消息队列常用于系统之间解耦合、峰值压力缓冲、异步通信。kafka的消息队列保证自己不丢数据(kafka接收数据不经内存,直接通过“零拷贝”写入到文件),消费者不丢数据(至少一次,严格一次),kafka会记录消费者读取数据的“offset”位置。
kafka的结构
 producer:消息生产者
  consumer:消息消费者
  broker:kafka集群的server,负责处理消息读、写请求,存储消息
  topic:消息队列/分类
kafka的消息存储和生产消费模型
  一个topice分成多个partition(分区),kafka里面的消息是由topic来组织的,简单的我们可以想象为一个队列,一个队列就是一个topic,然后它把每个topic又分为很多个partition,这个是为了做并行的,在每个partition里面是有序的,相当于有序的队列,其中每个消息都死有序号,比如0到12,从前面读往后面写。这个partition可以很简单想象为一个文件,当数据发过来的时候它就往这个partition上面追加就行
  一个partition对应一个broker,一个broker可以管理多个partition:比如说,topic有6个partition,有2个broker,那每个broker就管3个partition
  消息直接写入文件,并不是存储在内存中
  根据时间策略(默认一周)删除,而不是消费完就删除
  producer自己决定往哪个partition里写消息,可以是轮询的负载均衡,或者基于key的hash值
  consumer(消费者)自己维护消费到哪个offset(偏移量),每个consumer都有对应的group(组)。group内是queue消费模型,各个consumer消费不同的partition,一个消息在group内只消费一次(避免重复处理)。各个group之间独立消费互不影响
在这里插入图片描述
kakfa有哪些特点
  消息系统的特点:生产者消费者模型,FIFO(partition内部是FIFO的,partition之间呢不是FIFO的,当然我们可以把topic设为一个parition,这样就是严格的FIFO)
  高性能:单节点支持上千个客户端,百MS/s吞吐
  持久性:消费直接持久化在普通磁盘上且性能好(做到快速读取在于写入和读取时都是顺序的,这也确定了kafka partition内部的消息是强有序的特点)
  分布式:数据副本冗余、流量负载均衡、可扩展
  很灵活:消息长时间持久化+Client维护消费状态(Client可以自定义消费偏移量)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值