一、Kafka的结构

重点在于Broker的结构。每一个消息归宿于特定的Broker下的特定的Topic下特定的Partion。而这些对应关系则被ZooKeeper记录下来。

二、特点

异步通信

一种典型的观察者模式的实现。

观察者模式—菜鸟教程

解耦

可以并行的任务可以作为不同的消息放进消息队列,由多个系统并行处理。如上图当支付完成后,向消息队列中放入多个不同的任务(消息),后台系统通过订阅拉取对应的任务进行处理。即可做到解耦和异步通信。

削峰

类似于延迟满足,通过拖延消息处理来缓解消息压力。

三、原理(细节)

由上面可以看出来,Kafka的结构可以理解为一个列表(Broker)套列表(Topic)套队列(Partion)。而消息本身就像树节点一样不具备记录自身路径的能力,记录树这个数据结构的就是ZooKeeper。

这里比较特殊的一点是:Kafka中的分区(Partion)可以分布在不同的服务器(broker)上,即一个主题可以跨越多个broker。Kafka保证的是分区有序而不是主题有序。分区(Partion)还有多个副本(Replica)用来进行容灾备份。多个副本之间是一主多从结构。

假设有三个主题P1-3,每个主题有1个分区,每个分区有三个备份(Kafka中的备份即是全部的主+从数目)。分布在4个Broker上。

分区(Partion)由偏移量(Offset)进行指示:

 Last Committed Offset:Consumer最后提交的位置。

Current Position:Consumer当前读取的位置,但是还没有提交给broker。提交之后就变成Last Commit Offset。

High Watermark(HW):consumer不能读取超过HW的消息,因为这意味着读取到未完全同步(因此没有完全备份)的消息。

Log End Offset:当前的最新日志写入(或者同步)位置。

一个Leader,多个Follower。那么肯定有些和Leader完全同步,构成ISR集合。有些没有完全同步,构成OSR集合。所有的副本(Replica)即Total(Leader+Follower) 统称为AR,即AR=ISR+OSR。

Kafka的结构、特点和原理(细节)相关推荐

  1. Kafka史上最详细原理总结(一)

    Kafka史上最详细原理总结 一.概念理解 (1)产生背景 (2)Kafka的特性 (3)Kafka场景应用 (4)Kafka一些重要设计思想 二.消息队列通信的模式 (1)点对点模式 (2)发布订阅 ...

  2. 深度解读!新一代大数据引擎Flink厉害在哪?(附实现原理细节)

    导语 | 大数据计算分为离线计算和实时计算,其中离线计算就是我们通常说的批计算,代表技术是Hadoop MapReduce.Hive等:实时计算也被称作流计算,代表技术是Storm.Spark Str ...

  3. 《深入理解Kafka:核心设计与实践原理》笔误及改进记录

    2019年2月下旬笔者的有一本新书--<深入理解Kafka:核心设计与实践原理>上架,延续上一本<RabbitMQ实战指南>的惯例,本篇博文用来记录现在发现的一些笔误,一是给购 ...

  4. Kafka消费者的使用和原理

    作者 | 草捏子 来源 | 草捏子(ID:chaycao) 头图 |  CSDN 下载自视觉中国 这周我们学习下消费者,还是先从一个消费者的Hello World学起: public class Co ...

  5. Flink深度解读--附实现原理细节

    导语 | 大数据计算分为离线计算和实时计算,其中离线计算就是我们通常说的批计算,代表技术是Hadoop MapReduce.Hive等:实时计算也被称作流计算,代表技术是Storm.Spark Str ...

  6. java进阶Kafka集群实战之原理分析及优化教程全在这里

    我不去想是否能够成功 既然选择了Java 便只顾风雨兼程 我不去想能否征服Kafka集群 既然钟情于Java 就勇敢地追随千锋 我不去想Kafka集群有多么晦涩难懂 既然目标是远方 留给世界的只能是努 ...

  7. 2021年大数据Kafka(九):kafka消息存储及查询机制原理

    全网最详细的大数据Kafka文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 kafka消息存储及查询机制原理 一.Kafka数据存储机制 ...

  8. 从千万级数据查询来聊一聊索引结构和数据库原理

    在日常工作中我们不可避免地会遇到慢SQL问题,比如笔者在之前的公司时会定期收到DBA彪哥发来的Oracle AWR报告,并特别提示我某条sql近阶段执行明显很慢,可能要优化一下等.对于这样的问题通常大 ...

  9. DNA复制体结构和工作原理首次被揭示

    来源:科学网 DNA是生命遗传信息的载体,它的复制是生命繁衍过程当中最重要的一步.关于DNA复制分子机制的研究一直是生命科学中最基本的问题之一.近日,美国国立卫生研究院杰出研究员杨薇的课题组揭示了DN ...

最新文章

  1. 如何在AngularJS中使用ng-repeat迭代键和值?
  2. PyTorch分布式训练
  3. Chika and Friendly Pairs
  4. QMessageBox 使用方法
  5. USACO2.4のP1519-穿越栅栏(Overfencing)【bfs】
  6. linux6.2 网络yum,配置RHEL6.2的YUM源
  7. bzoj4600 [Sdoi2016]硬币游戏 sg函数+结论
  8. Notification使用详解之三:通过服务更新进度通知在Activity中监听服务进度
  9. python打砖块游戏算法设计分析_python小游戏--打砖块的实现与讲解(python自学总结系列)...
  10. 让“云”无处不在-Citrix Xenserver之六 高可用性: High Availability
  11. stream、string、byte[] 互转
  12. 优控触摸屏使用手册_中达优控PLC触摸屏一体机说明书.pdf
  13. UWP 应用通知Notifications
  14. git clone报错error: RPC failed; curl 56 GnuTLS recv error (-110): The TLS connection was non-properly
  15. Windows中使用Java执行shell命令运行检测,通过sonarqube的webapi获取扫描结果
  16. 3D模型动画素材来源
  17. child_process使用记录
  18. uniapp获取微信授权登录和手机号一键登录(保姆教程)
  19. RTP打包发送H264(下)
  20. 在计算机系统中 接口是什么意思,计算机中操作系统是什么的接口

热门文章

  1. 一文搞懂毕业论文格式规范【超详细!!!】
  2. 山武温控器的工作原理详情介绍
  3. linux驱动没活干_Linux 桌面版普及不了的一个重大原因是很多厂商不提供驱动
  4. 计算机灰尘过多影响,电脑灰尘多有什么影响
  5. 下载安装power BI超详细教程
  6. HTML a标签链接路径问题
  7. Linux操作系统——基础详解
  8. 【SCP文件传输】广域网下将外网文件传到内网服务器
  9. Win10中的核心隔离和内存完整性是什么?
  10. Onvif登录海康、大华摄像机(IPC)提示权鉴失败的问题解决