消息队列核心原理(二):Kafka核心原理

本文深入探讨Kafka的核心概念,包括Broker、Producer、Consumer和Partition。介绍了Kafka的特点,如高吞吐量、低延迟和强大的容错性。详细阐述了Broker的分区策略,包括如何决定消息发送到哪个Partition。接着,讨论了Kafka的可靠性保证,如数据存储流程、副本同步机制和高水位标记。文章还提到了日志处理和Kafka的高性能特性,如零拷贝技术。
摘要由CSDN通过智能技术生成

目录:

消息队列核心原理(一):消息中间件与协议介绍
消息队列核心原理(二):Kafka核心原理
消息队列核心原理(三):RabbitMQ核心原理

Kafka核心概念

  • Broker
    • Kafka服务端程序,一个节点就是一个Broker
    • 存储topic数据,就是主题数据,记录一类数据的概要等信息
  • Producer
    • 创建消息,发送到mq
    • 发送消息到topic
  • Consumer
    • 消费队列的消息
  • Consumer Group
    • 一个topic可以发送给不同的组,但是一个组中只能有一个consumer消费消息。
  • Topic
    • 消息的主题,或者叫类别,每个消息都有自己的主题
  • Partition
    • 是Kafka中存储数据的基本单元,每一个topic至少有一个partition且partition是有序的。
    • 一个topic的多个partition,分布在集群的多个server上
    • 消费者数量一定 ≤ \le partition数量
  • replication
    • 副本,每个partition有多个replication,副本数据是一样的
    • 默认为1,即没有副本只有本体
    • 副本数量最多为broker数量(这个好理解,多的话放哪?)
  • replication leader、replication follower
    • 我们想想之前的Redis主从的概念,是一个意思。不赘述。但是后面我会说不同的地方。
  • replication manager
    • 负责副本状态的切换
  • offset
    • 每一个consumer都会为他消费的partition记录一个offset,下次从这个offset开始读
    • Kafka把offset保存在consumer group里

Kafka特点

  1. 支持多订阅者,每个订阅者都要有一个partition,所以订阅者数量 ≤ \le partition数量
  2. 吞吐量大,延迟低。
  3. 高并发。同时可以存在数千客户端读写
  4. 容错性强。
  5. 扩展性强,支持热扩展。

Kafka并非读写分离式的主从,所以这一点和Redis不同。 因为Kafka应用的场景是高读写,而读写分离的主从场景是高读低写。Kafka同步机制是利用PULL方法,以后我们会提到,这种方法放弃了高一致性,转而面向高可用和分区容错。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值