kafka介绍

一 kafka介绍

1.1 kafka 模型介绍

Kafka 是一个开源的,轻量级的,支持多分区、多副本,基于 Zookeeper 的分布式消息流平台。

相比于其它消息系统,其有以下优点

  • 支持发布订阅模式的消息引擎系统。
  • 储存数据流时提供容错机制。
  • 对于数据的处理响应及时。

kafka的生产者消费模型如下,生产者生产消息发送至消息引擎,消费者从消息引擎中获取消息;

1.2 kafka 设计理念

  • 高吞吐、低延迟:kafka将消息写入操作系统页缓存而不直接操作磁盘io, 每秒可以处理几十万条消息,最低延迟几毫秒。
  • 高伸缩性: 每个主题(topic) 包含多个分区(partition),主题中的分区可以分布在不同的主机(broker)中。
  • 负载均衡:kafka 使用 leader选举算法实现了负载均衡,极大提高了运行效率;
  • 故障转移:kafka使用zookeeper 作为会话机制,搭建集群后kafka的容错机制极大提高,允许某个节点宕机而不影响其它节点。

1.3 Kafka 的使用场景

  • 行为跟踪:Kafka 可以用来跟踪用户行为,比如我们经常回去京东购物,当你浏览购物的时候,你的浏览信息,你的搜索指数,你的购物爱好都会作为一个个消息传递给 Kafka ,这样就可以生成报告,可以做智能推荐,购买喜好等。
  • 传递消息:Kafka 一个基本用途是传递消息,可以当作消息总线或者消息代理;
  • 日志收集:企业的应用非常多,每个应用都会产生日志,kafka可以当作日志收集汇总方案,方便日志管理!
  • 流式处理:流式处理是kafka Stream,kafka可以将接收的数据流提供给其它框架进行计算处理等!
  • 限流削峰:Kafka 多用于互联网领域某一时刻请求特别多的情况下,可以把请求写入Kafka 中,避免直接请求后端程序导致服务崩溃。

1.4 kafka基本术语

  • 消息:Kafka 中的数据单元被称为消息,也被称为记录;消息中有三要素,key为消息键,用作分区使用;value,消息体用于保存消息;timestamp,时间戳,表示消息发送的时间;
  • 主题:消息的种类称为 主题(Topic),一个主题代表了一类消息,经常使用topic来区分不同的业务,每个业务一个topic;
  • 分区:主题可以被分为若干个分区(partition),kafka 是 一个 topic-partition-message 的三级结构;分区存在的意义就是提高kafka的吞吐量;
  • 副本:副本的目的是实现消息的可靠性,将f分区的数据复制一份到replica, 即防止消息丢失!Kafka 定义了两类副本:领导者副本(Leader Replica) 和 追随者副本(Follower Replica),前者对外提供服务,后者只是被动跟随Leader,相当于候补队员;
  • broker: 一个独立的 Kafka 服务器就被称为 broker
  • ISR: Kafka在Zookeeper上针对每个Topic都维护了一个ISR(in-sync replica---已同步的副本)的集合,集合的增减Kafka都会更新该记录。如果某分区的Leader不可用,Kafka就从ISR集合中选择一个副本作为新的Leader。这样就可以容忍的失败数比较高,假如某Topic有N+1个副本,则可以容忍N个服务器不可用。

kafka教程

知识追寻者站点希望大家多多支持

posted @   知识追寻者  阅读(327)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示