消息队列之 Kafka | 芋道源码 —— 纯源码解析博客

Kafka特点

  • 同时为发布和订阅提供高吞吐量
    • Kafka高吞吐量的秘诀
      • 顺序写入
      • 内存映射文件
      • 标准化二进制消息格式 - 零拷贝(Zero Copy)的技术
  • 消息持久化
  • 分布式
  • 消费消息采用 pull 模式
  • 支持 online 和 offline 的场景

Kafka中的基本概念

  1. Broker
  2. Topic
  3. Partition
  4. Producer
  5. Cousumer
  6. Cousumer Group

【布客】kafka 中文翻译

入门

  1. 事件流是以事件流形式从数据库、传感器、移动设备、云服务和软件应用程序等事件源实时捕获数据的实践。
  2. 可以实时跟踪和监测汽车、物流等,可以持续捕获和分析来自物联网或其他设备的传感器数据。
  3. 三个 关键功能
    1. 发布和订阅事件流
    2. 持久可靠地存储事件流
    3. 在事件发生时或回顾性处理事件流
  4. Kafka是如何工作的?Kafka是一个分布式系统,由通过高性能TCP网络协议进行通信的服务器客户端组成。它可以部署在本地和云环境中的裸机硬件、虚拟机和容器上。
  5. 主要概念和术语:
    1. 生产者是将事件写入到Kafka的客户端应用程序,而消费者是订阅这些事件的客户端应用程序。彼此完全解耦且互不可知,高可扩展性的关键设计元素。
    2. 主题(事件存储并持久化的地方),事件在使用后不会被删除,你可以通过每个主题的配置来定义kafka应保留事件的事件,之后旧事件将被丢弃。不论数据有多大,性能恒定。主题是分区的。

设计

  1. 动机:充当统一平台来处理大公司可能拥有的所有实时数据源。
    1. 高吞吐量支持大容量事件流
    2. 妥善处理大量积压数据
    3. 处理低延迟交付
    4. 机器故障时保证容错
  2. 持久化
    1. 创新点
      1. 顺序IO可以接近网络速度
      2. 依靠OS缓存比自行管理更高效
      3. 简单追加日志的O(1)操作在磁盘上表现最佳
    2. 优势:允许长时间保留消息,而传统系统通常在消费后立即删除。为消费者提供更大灵活性(如重新消费、新消费者加入等)。
  3. 效率(如何实现高效处理数据?)
    1. 批量处理(批处理是核心优化)
    2. 零拷贝技术(减少数据复制)
    3. 智能缓存
    4. 压缩传输(省带宽)