当前位置: 首页 > news >正文

【Kafka基础】基础概念解析与消息队列对比

1 Kafka 是什么?

Kafka是一个 分布式流处理平台,主要用于 高吞吐量、低延迟的实时数据流处理,最初由LinkedIn开发。
核心特点
  • 高吞吐量:支持每秒百万级消息处理
  • 持久化存储:消息可持久化到磁盘,避免丢失
  • 分布式架构:支持水平扩展,保障高可用性
  • 实时流处理:可与 Flink、Spark Streaming 等流处理框架集成
应用场景
  • 日志收集与分析(如ELK替代方案)
  • 实时事件处理(如用户行为跟踪)
  • 消息队列(解耦生产者和消费者)

2 Kafka核心组件解析

2.1 Producer(生产者)

作用:向Kafka Topic发送消息
特点
  • 支持异步/同步发送
  • 可自定义分区策略(如轮询、Key-based 分区)

2.2 Consumer(消费者)

作用:从 Topic 订阅并消费消息
特点
  • 支持消费者组(Consumer Group)实现负载均衡
  • 可手动提交偏移量(offset)控制消费进度

2.3 Broker(代理节点)

作用:Kafka集群中的单个服务器,负责存储和转发消息
特点
  • 每个Broker管理多个Partition(分区)
# 查看Broker信息,列出所有Broker 
kafka-broker-api-versions --bootstrap-server localhost:9092

2.4 Topic(主题)

作用:消息的逻辑分类,类似数据库的表
特点
  • 每个Topic可划分为多个Partition(提高并发)
  • 消息在Partition内有序存储
# 创建Topic
kafka-topics --create \
    --bootstrap-server localhost:9092 \
    --topic test_topic \
    --partitions 3 \
    --replication-factor 2

# 验证Topic详情
kafka-topics --describe \
    --bootstrap-server localhost:9092 \
    --topic test_topic

2.5 Partition(分区)

作用:Topic的物理分片,保障并行处理能力
特点
  • 每个 Partition 是一个有序、不可变的日志队列
  • 消费者按 Partition 分配消费任务
# 查看Topic分区信息
kafka-topics --describe \
    --bootstrap-server localhost:9092 \
    --topic test_topic

3 Kafka vs 消息队列

3.1 传统消息队列(如RabbitMQ)

特性

RabbitMQ

Kafka

设计目标

低延迟、高可靠的消息投递

高吞吐、持久化的大规模流处理

消息模型

队列(Queue)、发布/订(Exchange)

分区(Partition)+ 消费者组

消息存储

消费后默认删除(可持久化)

长期存储(可配置保留时间)

吞吐量

较低(万级/秒)

极高(百万级/秒)

适用场景

任务队列、RPC 通信

日志收集、实时数据分析、事件溯源

3.2 Kafka的核心优势

  •  高吞吐:适合大数据场景(如日志采集)
  • 持久化存储:消息可回溯,避免丢失
  • 水平扩展:通过增加Broker轻松扩容

4 总结

  • Kafka是分布式流处理平台,核心解决高吞吐实时数据流问题
  • 核心组件:Producer、Consumer、Broker、Topic、Partition
  • Kafka和传统消息队列:Kafka适合大数据场景,RabbitMQ适合任务调度
http://www.dtcms.com/a/106740.html

相关文章:

  • Redis如何在windows中简单安装?
  • 线性DP总结
  • Centos 8 安装教程(新手版)
  • element-ui自制树形穿梭框
  • python操作es
  • 机器学习的一百个概念(8)插补法
  • LeetCode hot 100—最长递增子序列
  • PyQt5界面设计
  • 现代几何风格网页标牌标识logo海报标题设计psai英文字体安装包 Myfonts – Gilroy Font Family
  • React安装使用教程
  • vue3源码分析 -- runtime
  • ES6中增强对象
  • 虚幻引擎控制角色跟随移动方向旋转的方法
  • NLP高频面试题(三十二)——介绍一下CLIP和CLIP2
  • 【WebGL】getContext参数详解
  • 黑马 C++ 学习笔记
  • 红包-算法
  • HTB - Cat记录
  • Android学习总结之算法篇四(字符串)
  • 如何数据清洗
  • Python办公自动化(3)对Excel的操作
  • 安装docker和配置加速
  • (1)英特尔 RealSense T265(二)
  • 笔记:Vue3+Vite 怎么导入静态资源,比如图片/组件
  • 【算法学习】分治篇:分治算法的类型和解题详解
  • try语句总结
  • Docker Registry Clean
  • Scala的面向对象
  • 云巅之上:数字文明的重构与超越
  • C++进阶知识复习 16~30