栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 前沿技术 > 大数据 > 大数据系统

Kafka的结构、特点和原理(细节)

大数据系统 更新时间:发布时间: 百科书网 趣学号
一、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。

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/601299.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号