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

news2025/4/3 18:51:44

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.coloradmin.cn/o/2327404.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Centos 8 安装教程(新手版)

1.需要在阿里开源镜像站下载对应的镜像,如下:https://mirrors.aliyun.com/centos/8.5.2111/isos/x86_64/ 2.打开VM虚拟机,创建新的虚拟机,选择自定义 如图所示点击进行: 选择下载好的镜像 选择“Linux”,版…

Vue2函数式组件实战:手写可调用的动态组件,适用于toast轻提示、tip提示、dialog弹窗等

Vue2函数式组件实战:手写可调用的动态组件 一、需求场景分析 在开发中常遇到需要动态调用的组件场景: 全局弹窗提示即时消息通知动态表单验证需要脱离当前DOM树的悬浮组件 传统组件调用方式的痛点:必须预先写入模板,可能还要用…

大象如何学会太空漫步?美的:科技领先、To B和全球化

中国企业正处在转型的十字路口。一边是全新的技术、全新的市场机遇;一边是转型要面临的沉重负累和巨大投入,无数中国制造、中国品牌仍在寻路,而有的人已经走至半途。 近日,美的集团交出了一份十分亮眼的2024年财报。数据显示&…

已经使用中的clickhouse更改数据目录

在更换的目录操作,这里更换的目录为home目录,原先安装的目录在/soft/clickhouse/ ,在该目录下有data目录和log目录 更改前目录 更改后目录 1、停止clickhouse服务 sudo systemctl stop clickhouse-server 2、在home目录创建clickhouse目录,在clickho…

PHP的相关配置和优化

进入etc下面 去掉注释 pid run/php-fpm.pid #指定pid文件存放位置 生成一下子配置文件 这些都是生成的fastcgi的配置文件 进入php中,然后复制模版,生成配置文件 然后编辑文件更改时区 改完之后可以生成启动脚本 这时候刷新之后,再启动会报…

【leetcode100】每日温度

1、题目描述 给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。 示例 1: 输…

<贪心算法>

前言:在主包还没有接触算法的时候,就常听人提起“贪心”,当时是layman,根本不知道说的是什么,以为很难呢,但去了解一下,发现也不过如此嘛(bushi),还以为是什么高级东西呢…

基于银河麒麟桌面服务器操作系统的 DeepSeek本地化部署方法【详细自用版】

一、3种方式使用DeepSeek 1.本地部署 服务器操作系统环境进行,具体流程如下(桌面环境步骤相同): 本例所使用银河麒麟高级服务器操作系统版本信息: (1)安装ollama 方式一:按照ollama官网的下载指南,执行如下命令: curl -fsSL https://ollama.com/install.sh | sh方…

「2025最新版React+Ant Design+Router+TailwindCss全栈攻略:从零到实战,打造高颜值企业级应用

一站式掌握最新技术栈!手把手教你配置路由、集成UI组件库、高效开发秘籍大公开 ReactAntrouteraxiosmocktailwind css等组合安装使用教程 官网:React Native 中文网 使用React来编写原生应用的框架 一,安装 npx create-react-app my-app …

Ubuntu 24.04.2 LTS 系统安装python,创建虚拟环境

在 Ubuntu 24.04.2 LTS 系统中,系统本身自带了 Python 3,不过你还是可以按照下面的步骤来安装和配置 Python 环境。 1. 检查系统自带的 Python 版本 在终端中输入以下命令查看系统自带的 Python 版本: python3 --version如果显示了 Python…

redis7.0搭建redis-cluster集群部署实战

环境 基于3台centos服务 host节点1端口节点2端口master70007001slave170007001slave270007001 安装redis,以及环境准备 安装可以参考https://blog.csdn.net/tao1992/article/details/132614567 安装路径设置了/usr/local/redis 分别在3台服务器上执行 #配置文…

CMake学习--如何在CMake中编译静态库、动态库并在主程序中调用

目录 一、背景知识二、使用方法(一)编译静态库(二)编译动态库(三)在主程序中调用库 三、总结 一、背景知识 在C/C开发中,库(Library)是预先编译好的代码集合&#xff0c…

安美数字酒店宽带运营系统存在SQL注入漏洞

免责声明:本号提供的网络安全信息仅供参考,不构成专业建议。作者不对任何由于使用本文信息而导致的直接或间接损害承担责任。如涉及侵权,请及时与我联系,我将尽快处理并删除相关内容。 漏洞描述 安美数字酒店宽带运营系统的lang…

ubuntu18 server版花屏问题

新搞了一台dellT150的塔式服务器,装的ubuntu18 server版。 开机后遇到花屏,或者卡在开机界面的问题,和售后技术沟通这个情况是ubuntu自带的显卡驱动包兼容问题。需要做如下设置: 解决: 1.开机,连续按下e…

基于神经网络的肾脏疾病预测模型

构建一个基于神经网络的肾脏疾病预测模型 1. 数据预处理 ​加载数据:读取 kidney_disease.csv 文件,加载患者医疗数据。​删除冗余特征:移除与预测目标无关的列(如 al, su 等),保留关键特征(如…

I/O多路复用 + Reactor和Proactor + 一致性哈希

网络系统 1. I/O多路复用1)原始Socket模型通信方式2)多进程模型3)多线程模型4)I/O多路复用select/pollepoll边缘触发和水平触发 2. Reactor和Proactor1)Reactor模式2)Reactor模式四种方案3)单Re…

解决小程序video控件在真机和上线后黑屏不播放问题

小程序上线后,mp4格式的视频无法点击是黑屏,但是测试得时候在微信开发者工具中能够打开正常播放 原因:编码格式不能是vp9 微信开发者工具本地设置中把这个打开勾选。 排查:可以换一个视频尝试能不能真机播放,如果能&a…

java项目分享-分布式电商项目附软件链接

今天来分享一下github上最热门的开源电商项目安装部署,star 12.2k,自行安装部署历时两天,看了这篇文章快的话半天搞定!该踩的坑都踩完了,软件也打包好了就差喂嘴里。 项目简介 mall-swarm是一套微服务商城系统&#xf…

【LVS】负载均衡群集部署(DR模式)

部署前IP分配 DR服务器:192.168.166.101 vip:192.168.166.100 Web服务器1:192.168.166.104 vip:192.168.166.100 Web服务器2:192.168.166.107 vip:192.168.166.100 NFS服务器:192.168.166.108 …

链表的操作-反转链表

链表 160相交链表 代码 class Solution { public:ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {ListNode* h1headA;ListNode* h2headB;while(h1&&h2){if(h1!h2){h1h1->next;h2h2->next;}else{return h1;}}if(h1nullptr){h1headB;}else{h…