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

Kafka介绍

想象一个巨型物流枢纽中心

假设你经营着一个庞大的电商帝国(比如淘宝),每天要处理数以亿计的交易、物流、用户行为等消息。Kafka 就是这个帝国核心的「超级物流枢纽中心」。


一、Kafka 的核心角色与概念

我们先来认识一下这个枢纽中心的各个部分:

Kafka 术语物流中心比喻说明
Topic(主题)不同的运输流水线比如你有「订单流水线」、「支付流水线」、「物流跟踪流水线」。每个流水线只处理一种类型的货物(消息)。
Partition(分区)一条流水线上的多个并行车道「订单流水线」业务量太大,一个车道处理不过来。于是你把它分成3个分区(3个车道):P0, P1, P2。这样订单就可以并行处理,效率更高。
Producer(生产者)往流水线上放货物的工人订单系统的工人(Producer)把新生成的订单(消息)放到「订单流水线」上。
Consumer(消费者)从流水线上取货物的工人库存系统的工人(Consumer)从「订单流水线」上取下订单,去仓库备货。积分系统的工人(另一个Consumer)也从这个流水线上取订单,给用户加积分。同一份订单可以被多个不同的工人处理。
Consumer Group(消费者组)一队干同样活儿的工人小组你有一队「库存处理小组」(一个Consumer Group),小组里有3个工人(C1, C2, C3)。为了保证一个订单只被一个库存工人处理,你让:工人C1负责P0车道,工人C2负责P1车道,工人C3负责P2车道。这样分工明确,效率最高。如果工人C1请假了,他的工作会自动分给C2和C3。
Broker(代理)物流中心的一个个仓库/厂房一个Kafka集群由多个Broker(服务器)组成,就像一个大枢纽中心有多个仓库来分担负载,避免一个仓库垮了整个中心瘫痪。
Offset(偏移量)车道上的里程标记在每个车道(Partition)上,每条货物(消息)都有一个唯一的、递增的序号(Offset)。工人(Consumer)只需要记录「我处理到哪个里程标记了」,下次从这个标记继续往下处理就行。即使工人重启,也不会漏掉或重复处理货物。
Replication(副本)车道的备用车道为了防止某个车道(Partition)因为仓库(Broker)倒塌而瘫痪,你为每个主车道都建了1个或多个一模一样的备用车道(副本)。主车道(Leader)负责收发货物,备用车道(Follower)只负责同步复制数据。主车道坏了,备用车道立刻顶上去。
消费者组B (积分小组)
消费者组A (库存小组)
生产者 (上游系统)
Kafka Cluster (物流枢纽中心)
副本
副本
发布消息
发布消息
从P0消费
从P1消费
从P2消费
从所有分区消费
消费者B-1
消费者A-1
消费者A-2
消费者A-3
订单系统
支付系统
订单Topic
Broker 1
Broker 2
分区P0 Leader
分区P1 Leader
分区P2 Leader
分区P0 Follower
分区P1 Follower

二、Kafka 的核心特性(这个枢纽中心的优点)

  1. 高吞吐量/高性能

    • 顺序读写:货物(消息)在车道(分区)上是严格按顺序摆放的。叉车(磁盘)可以一路开过去连续装卸货,速度极快,避免了随机存放导致的效率低下。
    • 零拷贝技术:减少了货物在中心内部不必要的搬运次数,极大提升了效率。
    • 批量处理:工人(Producer)可以攒一小批货物再一次性送上流水线,减少来回跑的次数。
  2. 可扩展性

    • 业务量激增?很简单,给「订单流水线」增加几个车道(增加分区),同时多招几个库存工人(增加消费者)就行了。整个系统可以轻松水平扩展。
  3. 持久化与可靠性

    • 所有货物(消息)都会在物流中心(磁盘)保存一段时间(可配置,如7天)。这意味着即使下游的库存系统(Consumer)故障了一天,修好后它还能从昨天中断的地方继续处理,数据不会丢失
  4. 高可用性

    • 多仓库(多Broker)和备用车道(副本)机制保证了即使某个仓库或车道损坏,整个物流中心也能照常运转。

三、经典应用场景

  1. 消息系统/解耦:订单系统生成订单后,只需要把订单扔给Kafka,就不用管了。库存、积分、短信通知等系统会各自来Kafka取订单处理。订单系统不需要知道下游有哪些系统,实现了系统间的解耦。
  2. 用户行为追踪:网站或App将用户的每次点击、浏览等行为以消息的形式发送到Kafka,后续的数据分析系统再消费这些消息做实时或离线分析。
  3. 流式处理:实时监控交易数据,检测异常行为;实时计算大屏的点击量、销售额等。

总结

Kafka 的本质是一个高吞吐、可持久化、分布式、高可用的「发布-订阅」消息系统。

  • 它像一条永不堵塞的「高速公路」,数据就是飞驰的汽车。
  • 它像一家银行的「交易流水」,每一笔记录都清晰可查,且不可篡改。
  • 它像人体的「中枢神经系统」,将信息(消息)从感官(生产者)快速、可靠地传递到需要做出反应的器官(消费者)。

它是大数据和微服务领域不可或缺的基础组件,几乎所有互联网大厂都在使用它。

http://www.dtcms.com/a/398659.html

相关文章:

  • Netty 解码器 DelimiterBasedFrameDecoder
  • 位运算 常见方法总结 算法练习 C++
  • 电子商务平台网站源码国外炫网站
  • PTZ相机的知识体系
  • Nginx反向代理配置全流程实战:从环境搭建到HTTPS部署
  • HTTPS 能抓包吗?实战答案与逐步可行方案(HTTPS 抓包原理、证书Pinning双向认证应对、工具对比)
  • 对网站建设的讲话wordpress 自定义面板
  • 【23】C++实战篇——C++报错:LNK2001:无法解析的外部符号 ,LNK2019: 无法解析的外部符号,原因分析及解决方法
  • 东莞建设银行官方网站礼品网站制作
  • TiDB Cloud 可观测性最佳实践
  • python+springboot毕业季旅游一站式定制服务系统
  • docker 启用容器端口被占用报错500
  • 无人机台风天通信技术要点
  • ParaZero-无人机降落伞领先开发商:SafeAir降落伞系统、DropAir精确空投系统、DefendAir反无人机系统
  • 手机怎样创建网站网站内容保护
  • 电路基础与PCB设计(一)电路
  • YOLO入门教程(四):搭建YOLOv1网络
  • k8s中的Gateway API 和istio
  • K8S (使用步骤)
  • k8s 跟 nacos 关于服务注册以及服务发现
  • 专业的家居网站建设深圳高端网站建设公司
  • Ubuntu vscode软件的安装和使用
  • [Maven 基础课程]10_Maven 私服
  • Python11-集成学习
  • 代做网站灰色关键词青州网站搭建
  • Spring-MVC响应
  • 正确看待和使用TDD测试驱动开发
  • 红外热成像与数字图像相关(DIC)技术耦合在金属热变形分析中的应用
  • 做拍卖网站有哪些教做宝宝辅食的网站
  • 第一章:Go语言的起源-云原生时代的C位语言​​