IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Kafka组件 -> 正文阅读

[大数据]Kafka组件

????????Kakfka是高吞吐量的分布式发布订阅消息系统。具备高吞吐、持久化、分布式等优秀特性。下面我们先根据下图对Kafka系统中的组件逐一介绍,再结合组件阐述其工作过程,以及各类特性实现。

Kafka系统组件

? ? ? ? ?1)Producer:生产者,数据的发布者,将消息发布到Kafka的topic中。

? ? ? ? 2)Broker:服务器节点被称为Broker,每个服务器上有一个或多个kafka的实例。

? ? ? ? 3)Topic:每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic。

? ? ? ? 4)Partition:Topic中的数据分割为一个或多个partition,每个topic至少有一个partition。

? ? ? ? ? ? ? ? 每个Partition中数据使用多个segment文件存储,同一个Partition中数据是有序的,不同的Partition无法保证有序

? ? ? ? 5)Consumer:消费者,从broker中读取数据,可以消费多个topic中的数据。

? ? ? ? 6)Consumer Group:每个Consumer属于一个特定的Consumer Group。

????????????????通过该分组实现了消息的广播与单播,同一Topic的一条消息只能被同一个Consumer Group内的一个Consumer消费,但多个Consumer Group可同时消费这一消息。

? ? ? ? 7)Leader:Kafka的副本机制,每一个Partition有多个副本,仅有一个leader,负责当前数据的读写。

? ? ? ? 8)Follower:与Leader保持数据同步。

? ? ? ? 9)zookeeper:?集群管理,元数据管理,Broker 注册、Topic注册、生产者负载均衡,消费者负责均衡。

Kafka数据写入

? ? ? ? 1)Producer从Zookeeper中获取Partition的Leader;

? ? ? ? ? ? ? ? Producer发送消息到Broker时,按照一定路由机制选取Partition,路由机制有:

? ? ? ? ? ? ? ? ? ? ? ? a.直接使用指定的Partition;

? ? ? ? ? ? ? ? ? ? ? ? b.指定Key,通过对Key的Value值Hash选取一个Partition;

? ? ? ? ? ? ? ? ? ? ? ? c.轮询选出一个Partition。

? ? ? ? 2)Producer将消息发送给Leader,Leader写入本地文件;

? ? ? ? 3)Follower从Leader处Pull消息写入本地后向Leader发生ACK;

? ? ? ? 4)Leader收到所有副本的ACK后,增加HW,并向Producer发送ACK。

Kafka数据存储

? ? ? ? 1)Partition分区

? ? ? ? ? ? ? ? 每一条Message 包含了以下三个属性:offset,MessageSize,data

? ? ? ? 2)segment分段

? ? ? ? ? ? ? ? 多个segment组成一个Partition,每个segment数据文件以该段中最小的offset 命名,文件扩展名为.log。这一在查找指定的offset,可以通过二分法查找

? ? ? ? 3)数据文件索引

? ? ? ? ? ? ? ? 每一个segment文件对应了一个同名的.index文件,并且在索引文件中每隔一定的字节简历一个索引,即稀疏索引。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-07-16 11:22:15  更:2021-07-16 11:24:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/8 17:57:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码