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

kafka--基础--01--介绍

kafka–基础–01–介绍1、Kafka介绍Kafka是一个分布式、分区、多副本、多生产者、多消费者的分布式消息(日志)系统Kafka基于ZooKeeper做高可用使用场景用于 日志收集用于 消息服务1.1、设计目标以时间复杂度为 O(1) 的方式提供消息持久化能力即使对 TB 级以上的数据也能保证常数时间的访问性能。高吞吐率即使在非常廉价的商用机器上也能做到单机支持 10W/每秒 消息的传输。支持 Kafka Server 间的消息分区以及分布式消费同时保证每个 Partition 内的消息顺序传输。支持离线数据处理和实时数据处理。支持在线水平扩展1.2、消息系统介绍消息系统负责将数据从A应用传递到B应用应用只需关注数据无需关心数据在两个或多个应用间是如何传递的。分布式消息传递基于可靠的消息队列在客户端应用和消息系统之间异步传递消息。有两种主要的消息传递模式点对点传递模式发布-订阅模式(大部分的消息系统选用发布-订阅模式)​1.2.1、传递模式点对点消息消息持久化消息持久化到一个队列中。消费消息一个或多个消费者消费队列中的数据。但是一条消息只能被消费一次当一个消费者消费了队列中的某条数据之后该条数据则从消息队列中删除。优点即使有多个消费者同时消费数据也能保证数据处理的顺序。架构示意图如下1.2.2、传递模式发布-订阅消息消息持久化消息被持久化到一个 Topic 中消费消息消费者可以订阅一个或多个 Topic消费者可以消费 Topic 中所有的数据同一条数据可以被多个消费者消费数据被消费后不会立马删除发布者消息的生产者订阅者消息的消费者架构示意图如下2、术语2.1、结构概述上图介绍1个 Topic 配置了 3 个 Partition。Partition1有2个Offset(0和1)。Partition2有4个Offset。Partition3有1个Offset。副本的 ID 和副本所在的机器的 ID 恰好相同。如果一个 Topic 的副本数为 3那么 Kafka 将在集群中为每个 Partition 创建 3 个相同的副本。集群中的每个 Broker 存储一个或多个 Partition。多个 Producer 和 Consumer 可同时生产和消费数据。2.2、Broker一台 Kafka 服务器就是一个 Broker一个集群由多个 Broker 组成一个 Broker 可以容纳多个 Topic。Broker 和 Broker 之间没有 Master 和 Standby 的概念它们之间的地位基本是平等的。Kafka 集群包含一个或者多个服务器服务器节点称为 Broker。Broker 存储 Topic 的数据。如果某 Topic 有 N 个 Partition集群有 N 个 Broker那么每个 Broker 存储该 Topic 的一个 Partition。如果某 Topic 有 N 个 Partition集群有 (NM) 个 Broker那么其中有 N 个 Broker 存储该 Topic 的一个 Partition剩下的 M 个 Broker 不存储该 Topic 的 Partition 数据。如果某 Topic 有 N 个 Partition集群中 Broker 数目少于 N 个那么一个 Broker 存储该 Topic 的一个或多个 Partition。在实际生产环境中尽量避免这种情况的发生这种情况容易导致 Kafka 集群数据不均衡。2.3、Topic每条发布到 Kafka 集群的消息都有一个Topic。物理上不同 Topic 的消息分开存储逻辑上一个 Topic 的消息虽然保存于一个或多个 Broker 上但用户只需指定消息的 Topic 即可生产或消费数据而不必关心数据存于何处2.4、Producer生产者向 Kafka Topic 发布消息的客户端。2.5、PartitionTopic 中的数据分割为一个或多个 Partition。每个 Topic 至少有一个 Partition。每个 Partition 中的数据使用多个 Segment 文件存储。Partition 中的数据是有序的不同 Partition 间的数据丢失了数据的顺序。如果 Topic 有多个 Partition消费数据时就不能保证数据的顺序。在需要严格保证消息的消费顺序的场景下需要将 Partition 数目设为 1。2.6、Consumer消费者可以从 Broker 中读取数据。消费者可以消费多个 Topic 中的数据。2.7、Consumer Group每个 Consumer 属于一个特定的 Consumer Group(可为每个 Consumer 指定 Group Name若不指定 Group Name 则属于默认的 Group)。2.8、Leader每个 Partition 有多个副本其中有且仅有一个作为 LeaderLeader 是当前负责数据的读写的 Partition。2.9、FollowerFollower 跟随 Leader所有写请求都通过 Leader 路由数据变更会广播给所有 FollowerFollower 与 Leader 保持数据同步。如果 Leader 失效则从 Follower 中选举出一个新的 Leader。当 Follower 与 Leader 挂掉、卡住或者同步太慢Leader 会把这个 Follower 从 “in sync replicas”(ISR)列表中删除重新创建一个 Follower。2.10、Offset消息在 Topic 的 Partition 中的位置同一个 Partition 中的消息随着消息的写入其对应的 Offset 也自增。结构图如下2.11、Replica副本的意思Topic 的 Partition 含有 N 个 ReplicaN 为副本因子。副本的类型有Leader和FollowerLeader只有一个处理 Partition 的所有读写请求Follower 除了Leader之外的所有副本Follower 会定期去同步 Leader 上的数据2.12、Message通讯的基本单位即消息。2.13、ZooKeeper存放 Kafka 集群相关元数据的组件。在 ZK 集群中会保存 Topic 的状态消息例如分区的个数分区的组成分区的分布情况等保存 Broker 的状态消息保存消费者的消息等3、Kafka架构3.1、拓扑结构Kafka 集群由若干个 Broker 组成Topic 由若干个 Partition 组成每个 Partition 里面的消息通过 Offset 来获取。生产者将消息发送给某个 Topic每个Topic对应一个消息队列(Queue)消费者订阅某个Topic的消息。3.2、消息发送简易流程一个典型的 Kafka 集群组成若干个 Producer使用 Push 模式将消息发布到 Broker 上若干个 BrokerKafka 集群支持水平扩展一般 Broker 数量越多整个 Kafka 集群的吞吐率也就越高若干个 Consumer GroupConsumer 使用 Pull 模式从 Broker 上订阅并消费消息一个 ZooKeeper 集群。Kafka 通过 ZooKeeper 管理集群配置。

相关文章:

kafka--基础--01--介绍

kafka–基础–01–介绍1、Kafka介绍 Kafka是一个分布式、分区、多副本、多生产者、多消费者的分布式消息(日志)系统Kafka基于ZooKeeper做高可用使用场景 用于 日志收集用于 消息服务1.1、设计目标 以时间复杂度为 O(1) 的方式提供消息持久化能力,即使对 TB 级以上…...

【PHP订单分布式处理黄金标准】:基于TCC+Saga双模式选型决策图,附2024最新性能对比基准测试报告

更多请点击: https://intelliparadigm.com 第一章:PHP订单分布式处理的演进与挑战 早期单体 PHP 应用常将订单创建、库存扣减、支付回调、通知发送等逻辑耦合在同一个 HTTP 请求生命周期中,导致高并发下单时响应延迟激增、数据库连接池耗尽、…...

.NET 9容器配置实战手册(Kubernetes+Docker+Minimal Hosting三合一)

更多请点击: https://intelliparadigm.com 第一章:.NET 9容器化演进与Minimal Hosting新范式 .NET 9 将容器就绪能力深度融入运行时设计,原生支持无依赖、低开销的镜像构建流程。借助 dotnet publish --os linux --arch arm64 --self-contai…...

告别访问难题!镜像站聚合平台终极指南

最近在库拉上探索AI工具时,我顺手整理了一份镜像站聚合平台的对比清单,结果发现评论区炸了——太多人被访问慢、链接失效这些问题折磨过。既然大家痛点这么集中,今天就系统聊聊这个话题。为什么你总在和"访问不了"较劲?…...

LAN8720网口死活ping不通?别急着怀疑代码,先检查这4个10pF电容!

LAN8720网络接口调试指南:从硬件角度解决Ping不通问题 当你熬夜调试LAN8720网络接口,却发现无论如何都ping不通时,那种挫败感简直让人抓狂。作为一名嵌入式开发者,我完全理解这种痛苦——特别是当软件调试已经耗尽所有可能性&…...

Windows不安装 Android Studio如何打包安卓软件

我已经成功跑起来了,只用命令行就可以打包。用任何一个ide都可以写代码,尤其是ai时代。我这里克隆了一个开源的安卓项目,想把它在我电脑上打包成apk,以下是需要的环境。 安装Android SDK 使用Command line tools only 我用的是这…...

WaveTools:解锁《鸣潮》120帧体验的3大核心功能

WaveTools:解锁《鸣潮》120帧体验的3大核心功能 【免费下载链接】WaveTools 🧰鸣潮工具箱 项目地址: https://gitcode.com/gh_mirrors/wa/WaveTools 你是否在为《鸣潮》游戏体验而烦恼?帧率被锁在60帧导致画面不够流畅?画质…...

ESP32双核实战:用FreeRTOS消息队列搞定传感器数据采集与Wi-Fi上传(附完整代码)

ESP32双核实战:用FreeRTOS消息队列搞定传感器数据采集与Wi-Fi上传(附完整代码) 在物联网设备开发中,实时性和稳定性往往是项目成败的关键。想象一下,当你精心设计的环境监测站因为网络上传阻塞了传感器采集&#xff0c…...

TranslucentTB:终极Windows任务栏透明美化完全指南

TranslucentTB:终极Windows任务栏透明美化完全指南 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB 你是否厌倦了Windows系统任…...

革命性岛屿设计工具:Happy Island Designer深度解析与进阶应用

革命性岛屿设计工具:Happy Island Designer深度解析与进阶应用 【免费下载链接】HappyIslandDesigner "Happy Island Designer (Alpha)",是一个在线工具,它允许用户设计和定制自己的岛屿。这个工具是受游戏《动物森友会》(Animal C…...

从802.3af到802.3bt:POE标准演进全解析,你的摄像头、AP该用哪种供电方案?

从802.3af到802.3bt:POE供电技术选型实战指南 在智能建筑和工业物联网项目中,POE供电技术已经成为连接摄像头、无线AP和各类传感器的首选方案。但面对市场上从15W到100W的不同标准,许多工程师在设备选型时常常陷入困惑:为什么新部…...

League Akari:英雄联盟自动化辅助工具终极指南,轻松提升游戏体验

League Akari:英雄联盟自动化辅助工具终极指南,轻松提升游戏体验 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 还在为…...

Outlook 2016 联系人组实战:别再一个个敲邮箱了,这样群发邮件效率翻倍

Outlook 2016 联系人组实战:别再一个个敲邮箱了,这样群发邮件效率翻倍 每周一早晨,市场部的李经理都要给30多位客户发送项目周报。她习惯性地打开新邮件窗口,开始逐个输入邮箱地址——这个动作要重复30多次,还总担心输…...

[具身智能-572]:Trae上下文压缩的定义、必要性和意义

Trae 上下文压缩(Context Compression) 是其多智能体 AI 编程系统中的一项关键技术,旨在在保障任务理解准确性的前提下,动态精简、提炼和结构化项目上下文信息,以适配大模型有限的上下文窗口(context windo…...

ArcGIS Pro和ArcMap数据裁剪对比:以城市绿地提取为例,我为什么推荐新工具

ArcGIS Pro vs ArcMap:城市绿地提取实战对比与工具迁移指南 当城市规划部门需要从全市遥感影像中批量提取公园绿地并统计面积时,GIS工具的选择直接影响着工作效率和成果精度。十年前我们可能毫不犹豫地选择ArcMap,但今天ArcGIS Pro带来的革新…...

Pandapower电力系统分析:5步快速掌握开源Python工具的核心应用

Pandapower电力系统分析:5步快速掌握开源Python工具的核心应用 【免费下载链接】pandapower Convenient Power System Modelling and Analysis based on PYPOWER and pandas 项目地址: https://gitcode.com/gh_mirrors/pa/pandapower 你是否正在寻找一款功能…...

Hacker News写入自动化:基于MCP协议实现AI驱动的社区交互

1. 项目概述:一个能“写”入Hacker News的MCP服务器 如果你和我一样,既是Hacker News的深度用户,又是Claude、Cursor这类AI工具的日常使用者,那你肯定遇到过这个痛点:想用AI帮你发个帖、回个评论,却发现现有…...

避坑指南:Vits语音合成模型本地部署,从环境配置到成功运行(附常见错误解决)

Vits语音合成模型实战部署:从环境搭建到避坑指南 第一次听到Vits生成的语音时,那种接近真人发音的流畅度和情感表现力让我震惊——这完全颠覆了我对开源语音合成技术的认知。但随之而来的部署过程却像一场噩梦:CUDA版本冲突、Gradio依赖地狱、…...

大模型幻觉检测与缓解技术全解析

1. 大模型幻觉现象的本质剖析大模型幻觉(Hallucination)是指AI系统生成看似合理但实际错误或虚构内容的现象。这种现象在文本生成、问答系统等场景中尤为突出,表现为模型会自信地输出与事实不符的信息、虚构不存在的引用或编造看似专业的术语…...

企业级AI应用开发中如何借助Taotoken实现模型容灾与降级策略

企业级AI应用开发中如何借助Taotoken实现模型容灾与降级策略 1. 企业级AI应用的高可用挑战 在构建企业级AI应用时,服务连续性往往面临多重挑战。模型供应商的API可能因网络波动、区域服务中断或配额耗尽等原因出现暂时不可用的情况。传统直连单一供应商的架构在这…...

生产级企业客服机器人实战:DeepSeek-V4成本优化与四层架构设计

核心主张: 客服机器人的死亡,99%不是死于技术,而是死于账单。80%的简单咨询吃掉了大部分成本,而那20%真正复杂的问题,反而因为资源耗尽而得不到好的答复。 适读人群: AI产品经理、全栈开发者、企业技术负责人 阅读时长: 约25分钟 核心收益: 掌握智能分流、语义缓存、RA…...

企业级AI系统架构设计:5大核心技术挑战与高性能解决方案

企业级AI系统架构设计:5大核心技术挑战与高性能解决方案 【免费下载链接】AISystem AISystem 主要是指AI系统,包括AI芯片、AI编译器、AI推理和训练框架等AI全栈底层技术 项目地址: https://gitcode.com/GitHub_Trending/ai/AISystem AISystem作为…...

SVG-LLMs多任务强化学习框架解析与应用

1. 项目背景与核心挑战在AI领域,大型语言模型(LLMs)的推理能力一直是研究热点。SVG-LLMs(Scalable, Verifiable and Generalizable LLMs)作为新一代语言模型架构,其可靠推理能力的提升面临三个关键挑战:多任务适应性:单一奖励函数…...

Alternative Mod Launcher:XCOM 2模组管理终极解决方案,告别游戏崩溃的烦恼

Alternative Mod Launcher:XCOM 2模组管理终极解决方案,告别游戏崩溃的烦恼 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: h…...

TQVaultAE:如何为《泰坦之旅》打造你的专属装备管理系统?

TQVaultAE:如何为《泰坦之旅》打造你的专属装备管理系统? 【免费下载链接】TQVaultAE Extra bank space for Titan Quest Anniversary Edition 项目地址: https://gitcode.com/gh_mirrors/tq/TQVaultAE 还在为《泰坦之旅》中堆积如山的装备而烦恼…...

终极指南:如何用Harepacker复活版打造你的MapleStory专属世界

终极指南:如何用Harepacker复活版打造你的MapleStory专属世界 【免费下载链接】Harepacker-resurrected All in one .wz file/map editor for MapleStory game files 项目地址: https://gitcode.com/gh_mirrors/ha/Harepacker-resurrected 想要亲手打造属于自…...

Apollo Save Tool:PS4存档管理的终极免费解决方案 [特殊字符]

Apollo Save Tool:PS4存档管理的终极免费解决方案 🎮 【免费下载链接】apollo-ps4 Apollo Save Tool (PS4) 项目地址: https://gitcode.com/gh_mirrors/ap/apollo-ps4 还在为PS4存档丢失而烦恼吗?是否曾因存档无法在不同主机间转移而束…...

ComfyUI ControlNet Aux终极指南:30+预处理器一站式解决方案

ComfyUI ControlNet Aux终极指南:30预处理器一站式解决方案 【免费下载链接】comfyui_controlnet_aux ComfyUIs ControlNet Auxiliary Preprocessors 项目地址: https://gitcode.com/gh_mirrors/co/comfyui_controlnet_aux 还在为AI绘画中的人物姿态不自然、…...

Hermes实战案例_一站式AI助手能做什么

Hermes Agent 实战案例:一站式 AI 助手能做什么? 时间: 2026-05-03 环境: WSL2 (Ubuntu) DeepSeek V4 Flash 摘要: 从文件管理到数据分析,从网络搜索到 PPT 优化,仅用自然语言驱动完成全流程工作 目录 环境感知与文件管理硬件排…...

AUTOSAR Dem模块深度配置指南:手把手教你用ETAS工具设置DTC的确认阈值与老化策略

AUTOSAR Dem模块工程实战:ETAS工具链下DTC全生命周期管理策略 在汽车电子控制系统开发中,诊断事件管理(Dem)模块的配置质量直接影响车辆全生命周期的可维护性。当ECU检测到异常时,如何准确记录故障、合理设置确认条件、…...