常用工具: kafka,redis

server/2025/3/20 18:46:39/

kafka

Apache Kafka 是一个分布式流处理平台,主要用于构建实时数据管道和流应用程序。它具有高吞吐量、低延迟、可扩展性和持久性等特点,广泛应用于日志收集、消息系统、事件溯源、流处理等场景。

以下是 Kafka 的基础知识: 

1. Kafka 的核心概念

1.1 Topic(主题)
  • Topic 是 Kafka 中数据存储的逻辑分类,类似于数据库中的表。

  • 生产者将消息发布到特定的 Topic,消费者从 Topic 订阅并消费消息。

  • 一个 Kafka 集群可以有多个 Topic。 

1.2 Partition(分区)
  • 每个 Topic 可以分为多个 Partition,分区是 Kafka 实现高吞吐量和并行处理的基础。

  • 每个分区是一个有序的、不可变的消息队列。

  • 分区允许 Topic 的数据分布在多个服务器上,从而实现水平扩展。

1.3 Producer(生产者)
  • Producer 是向 Kafka Topic 发布消息的客户端。

  • 生产者可以将消息发送到指定的 Topic 和 Partition。

1.4 Consumer(消费者)
  • Consumer 是从 Kafka Topic 订阅并消费消息的客户端。

  • 消费者可以以组(Consumer Group)的形式工作,组内的消费者共同消费一个 Topic 的消息,实现负载均衡。

1.5 Broker(代理)
  • Broker 是 Kafka 集群中的单个服务器节点。

  • 每个 Broker 负责存储和管理一个或多个 Partition。

  • 多个 Broker 组成一个 Kafka 集群。

1.6 Offset(偏移量)
  • Offset 是消息在 Partition 中的唯一标识,表示消息的位置。

  • 消费者通过维护 Offset 来记录自己消费到的位置。

1.7 Consumer Group(消费者组)
  • Consumer Group 是一组消费者的集合,共同消费一个 Topic 的消息。

  • Kafka 会将 Topic 的 Partition 分配给组内的消费者,确保每条消息只被组内的一个消费者消费。

1.8 Replication(副本)
  • Kafka 通过 Replication 实现数据的高可用性。

  • 每个 Partition 可以有多个副本,其中一个副本是 Leader,负责处理读写请求,其他副本是 Follower,用于数据备份。

2. Kafka 的架构

2.1 生产者-消费者模型
  • 生产者将消息发布到 Kafka Topic。

  • 消费者从 Topic 订阅并消费消息。

2.2 分布式存储
  • Kafka 的数据分布在多个 Broker 上,每个 Broker 存储一部分 Partition。

  • 通过分区和副本机制,Kafka 实现了高可用性和负载均衡。

2.3 ZooKeeper 的作用
  • Kafka 依赖 ZooKeeper 来管理集群元数据、Broker 状态、消费者 Offset 等。

  • 从 Kafka 2.8.0 开始,Kafka 引入了 KRaft 模式,可以不再依赖 ZooKeeper。


http://www.ppmy.cn/server/176310.html

相关文章

C# 事件(Event)核心概念

文章目录 前言‌1. 事件的核心概念‌‌2. 事件的声明与使用‌‌3. 标准事件模式(EventHandler 和 EventArgs)‌4. 事件与委托的区别‌‌5. 事件的使用场景‌‌6. 高级特性‌‌7. 注意事项‌‌8. 完整示例:温度监控系统‌‌9. 常见问题‌ 前言…

Redis调优:从老牛车到磁悬浮的飙车指南

各位被Redis性能按在地上摩擦的车手们!今天我们要把这辆老牛破车改装成贴地飞行的磁悬浮!从每秒撑死几千QPS的绝望,到百万级吞吐量的真香现场,系好安全带,准备开启性能压榨的狂暴模式! 🏎️&…

golang time包和日期函数

1.简介 在程序中日期和时间是我们经常会用到的,在go中time包提供了时间的显示和测量函数。 2.获取当前时间 通过time.Now()函数获取当前时间对象,然后获取时间对象的年月日时分秒等值。 now : time.Now()fmt.Printf("now%v type%T\n", now…

《Python实战进阶》No25: 自动化测试:unittest 与 pytest 的对比

No25: 自动化测试:unittest 与 pytest 的对比 摘要 在现代软件开发中,自动化测试是确保代码质量、减少回归错误的重要手段。Python 提供了多个强大的单元测试框架,其中 unittest 和 pytest 是最主流的两个选择。本文将深入对比这两个框架的特…

【论文笔记】RAQ-VAE: Rate-Adaptive Vector-Quantized Variational Autoencoder

目录 笔记作者1.引言2.背景3.Rate-Adaptive VQ-VAE3.1 基于模型的 Rate-Adaptive VQ-VAE3.2数据驱动的自适应码率 VQ-VAE 4.实验4.1 视觉任务的主要结果4.2 详细分析 5 .结论 笔记作者 吴思雨,女,西安工程大学电子信息学院,2023级研究生&…

3.数据探索与可视化基本图形(直方图、箱线图、散点图)——Python数据挖掘代码实践

文章目录 一、 基本概念与专业术语解析1.1 数据分布、相关性与多维数据1.2 专业术语解释与图形介绍 二、 直方图2.1 使用 Matplotlib 绘制基础直方图2.2 使用 Seaborn 绘制直方图 密度曲线2.3 不同 bin 规则对比 三、 箱线图3.1 理论基础3.2 绘制箱线图3.2.1 使用 Matplotlib …

【干货】Docker 在自动化测试和性能测试中的应用

引言 在现代软件测试领域,Docker 已经成为提升自动化测试和性能测试效率的重要工具。它不仅能提供一致的测试环境,还能大幅减少配置和维护成本。本文将深入探讨 Docker 在自动化测试和性能测试中的应用场景、优势及实践方案。 1. 为什么选择 Docker&am…

RunningHub:瞄准图形音视频,做AIGC应用共创平台,它有何特点?

2025第一季度,文生图行业进步神速。 数科星球原创 作者丨苑晶 编辑丨大兔 2025第一季度,文生图行业进步神速。 直观层面,图形的拟真度飞速提升。由此,其在广告、宣传、影视制作、游戏开发等领域的价值得到了空前开发。 而AI的…