Kafka第三课

Flume
由三部分 Source Channel Sink
可以通过配置拦截器和Channel选择器,来实现对数据的分流,
可以通过对channel的2个存储容量的的设置,来实现对流速的控制

Kafka
同样由三大部分组成 生产者 服务器 消费者
生产者负责发送数据给服务器
服务器存储数据
消费者通过从服务器取数据

但是,Kafka比Flume要更精细一点
生产者到服务器存数据(发数据):在这里插入图片描述

获取配置->修改配置->拦截器->序列化器->分区器->sender 到broker
在这里插入图片描述

服务器如何存数据?
选举leader和发回消息
1.一个分区多个副本的controller同时去抢注册ZK
2.注册成功的监控broker节点变化
3.然后开始选举,选举出来将结果传给zk
4.其他的controller对从zk上同步节点信息(每个controller都会监控zk)
4.1.Leader挂了的话,重新选举, 然后其他controller重新同步
5.选举出来之后,生产者开始发送数据,数据由Leader同步到follower副
6.发送的数据就是Segment(默认1个G),
那么什么是Segment .log .timeindex .index .snapshot leader .metadata
50个consumer_offset 就是存储消费者读取的偏移量
7.向生产者应答
在这里插入图片描述

注意一下Leader挂是怎么挂?
1.broker直接挂 2. 数据太多,崩掉

消费者到服务器取数据:
消费者是按topic去读取的,一般都是一个分区对应一个消费者
消费者的offset由消费者自己提交到系统主题保存
按组按照消费策略进行读取
在这里插入图片描述

消费者组初始化
1.选出coordinator groupid的哈希值%50 这个组下的所有消费者提交offset都往这个分区提交
2.消费者实例到coordinator注册,然后coordinator选出一个consumer leader
3.Consumer leader制定一个消费方案,发给coordinator 然后coordinator转发
4.每个消费者都和coordinator保持心跳3s,超时(45s)移除该消费者,或者处理时间过长(超过5分钟),触发再平衡,重新制定消费方案
在这里插入图片描述

在这里插入图片描述

Kafka的高效读写
为什么?
1.Kafka本身分布式集群,分区技术,并行度高
2.读数据采用稀疏索引,可以快速定位要消费的数据
3.顺序写磁盘

他是如何顺序写磁盘的?
因为他的写入方式是追加写入

为什么顺序写磁盘快?
因为不需要寻址时间,而磁盘的寻址时间太长了

页缓存和零拷贝

什么是页缓存?
操作系统在内存中的缓存机制,
存: 存到页缓存 ->存到磁盘 取->先看页缓存有没有->没有就看磁盘

什么是零拷贝?
传输: 一般传输 ->s 内存->内核缓冲区->e网络设备 零拷贝 内存->网络设备
在这里插入图片描述

零拷贝: Kafka的数据加工处理操作交由Kafka生产者和Kafka消费者处理。而Broker应用层不关心存储数据,不用走应用层

消费者如何提高吞吐量?
1.如果消费者对分区不是1对1 ,加消费者
2.提高每批次拉数据的数量

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/38305.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++11保姆级教程】auto和decltype

文章目录 前言总结一、auto1.初识auto关键字 2.auto使用二、decltype1.初识decltype2.使用decltype 总结 前言 在C11中引入了一些新的关键字和特性,其中包括auto和decltype。这两个关键字提供了更方便、更灵活的类型推断机制,使得代码编写更加简洁和可读…

shell 命令 tee {..}定义循环体

tee & {..}定义循环体 tee{..} 循环体 tee 作用:将标准输出流内容复制文件中,同时控制台信息依然会显示。 > 和 >> 直接将标准输出流内容重定向,从而导致控制台无法看到输出内容。 可选参数 -a :追加内容&#xff1…

CSS3中的var()函数

目录 定义: 语法: 用法: 定义: var()函数是一个 CSS 函数用于插入自定义属性(有时也被称为“CSS 变量”)的值 语法: var(custom-property-name, value) 函数的第一个参数是要替换的自定义属性…

MATLAB | 绘图复刻(十一) | 截断的含散点及误差棒的分组柱状图

hey大家好久不见,本期带来一篇绘图复刻,居然已经出到第11篇了,不知道有朝一日有没有机会破百,本期绘制的是《PNAS》期刊中pnas.2200057120文章的figure03,文章题目为Intranasal delivery of full-length anti-Nogo-A a…

Debian/Ubuntu清理硬盘空间

Debian/Ubuntu清理硬盘空间_debian清理磁盘空间_weixin_43606319的博客-CSDN博客 1. 删除残余的配置文件 通常Debian/Ubuntu删除软件包可以用两条命令 sudo apt-get remove <package-name> sudo apt-get purge <package-name> remove将会删除软件包&#xff0…

量化交易接口如何实现量化交易?(程序化交易接口)API

量化交易接口是通过连接投资者的交易账户和量化交易系统&#xff08;程序化交易系统&#xff09;&#xff0c;实现自动化的交易操作。以下是量化交易接口实现量化交易的一般步骤&#xff1a; 1. 数据获取&#xff1a;量化交易接口首先需要通过与行情数据供应商或交易所的API接…

车载以太网物理层

车载以太网物理层 O S I 参考模型的第 1 层&#xff08; 最底层&#xff09;。负责逻辑信号&#xff08; 比特流&#xff09;与物理信号&#xff08;电信号、光信号&#xff09;之间的互相转换&#xff0c;通过传输介质为数据链路层提供物理连接。 车载以太网与传统以太网相比…

java实现docx,pdf文件动态填充数据

一&#xff0c;引入pom 根据需求引入自己所需pom org.apache.poi poi 4.1.1 org.apache.poi poi-ooxml 4.1.1 org.jxls jxls 2.6.0 ch.qos.logback logback-core org.jxls jxls-poi 1.2.0 fr.opensagres.xdocreport fr.opensagres.xdocreport.core 2.0.2 fr.opensagres.xdocrep…

QT笔记——QProcess学习

我们常常想通过某一个类&#xff0c;来启动一个外部进程 本文将讲解如何通过QProcess来进行启动外部进程 一&#xff1a;了解QProcess QProcess是Qt框架提供的一个类&#xff0c;用于在应用程序中执行外部进程。它提供了一系列函数来启动、控制和与外部进程进行交互 1.启动进程…

C++入门基础(万字详解!!!)

文章目录 前言1.C关键字2.命名空间3.C的输入输出4.缺省参数4.1 全缺省4.2 半缺省 5.函数重载6. 引用6.1 引用的特性6.2 引用的使用场景6.3 引用和指针 7.内联函数7.1 特性 8.auto关键字8.1 注意事项 9. 基于范围的for循环9.1 使用条件 10.指针控制nullptr10.1 注意事项 11.总结…

fastadmin 自定义搜索分类和时间范围

1.分类搜索&#xff0c;分类信息获取----php 2.对应html页面&#xff0c;页面底部加搜索提交代码&#xff08;这里需要注意&#xff1a;红框内容&#xff09; 图上代码----方便直接复制使用 <script id"countrySearch" type"text/html"><!--form…

安全 1自测

常见对称加密算法&#xff1a; DES&#xff08;Data Encryption Standard&#xff09;&#xff1a;数据加密标准&#xff0c;速度较快&#xff0c;适用于加密大量数据的场合&#xff1b; 3DES&#xff08;Triple DES&#xff09;&#xff1a;是基于DES&#xff0c;对一块数据用…

Spring相关面试题

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱写博客的嗯哼&#xff0c;爱好Java的小菜鸟 &#x1f525;如果感觉博主的文章还不错的话&#xff0c;请&#x1f44d;三连支持&#x1f44d;一下博主哦 &#x1f4dd;个人博客&#xff1a;敬请期待 &#x1f4d5;系列…

时序预测 | MATLAB实现EEMD-GRU、GRU集合经验模态分解结合门控循环单元时间序列预测对比

时序预测 | MATLAB实现EEMD-GRU、GRU集合经验模态分解结合门控循环单元时间序列预测对比 目录 时序预测 | MATLAB实现EEMD-GRU、GRU集合经验模态分解结合门控循环单元时间序列预测对比效果一览基本介绍模型搭建程序设计参考资料 效果一览 基本介绍 1.MATLAB实现EEMD-GRU、GRU时…

springcloud+nacos实现灰度发布

灰度发布 gateway网关实现灰度路由 灰度发布实体 package com.scm.boss.common.bean;import lombok.Data; import lombok.experimental.Accessors;import java.io.Serializable;/*** 灰度发布实体*/ Data Accessors(chain true) public class GrayBean implements Serializ…

【Linux】—— 进程程序替换

目录 序言 &#xff08;一&#xff09;替换原理 1、进程角度——见见猪跑 1️⃣ 认识 execl 函数 2、程序角度——看图理解 &#xff08;二&#xff09;替换函数 1、命名理解 2、函数理解 1️⃣execlp 2️⃣execv 3️⃣execvp 4️⃣execle 5️⃣execve 6️⃣execve…

机器学习重要内容:特征工程之特征抽取

目录 1、简介 2、⭐为什么需要特征工程 3、特征抽取 3.1、简介 3.2、特征提取主要内容 3.3、字典特征提取 3.4、"one-hot"编码 3.5、文本特征提取 3.5.1、英文文本 3.5.2、结巴分词 3.5.3、中文文本 3.5.4、Tf-idf ⭐所属专栏&#xff1a;人工智能 文中提…

LLaMA长度外推高性价比trick:线性插值法及相关改进源码阅读及相关记录

前言 最近&#xff0c;开源了可商用的llama2&#xff0c;支持长度相比llama1的1024&#xff0c;拓展到了4096长度&#xff0c;然而&#xff0c;相比GPT-4、Claude-2等支持的长度&#xff0c;llama的长度外推显得尤为重要&#xff0c;本文记录了三种网络开源的RoPE改进方式及相…

Vue-打印组件页面

场景: 需要将页面的局部信息打印出来&#xff0c;只在前端实现&#xff0c;不要占用后端的资源。经过百度经验&#xff0c;决定使用 print-js和html2canvas组件。 1. 下载包 npm install print-js --save npm install --save html2canvas 2. 组件内引用 <script>impo…

C语言之数组指针和指针数组

C语言之数组指针和指针数组 一、含义二、定义2.1 指针数组2.2 数组指针 三、使用3.1 指针数组在参数传递时的使用3.1.1 指针数组的排序3.2 数组指针在参数传递时的使用 一、含义 指针数组&#xff1a;顾名思义&#xff0c;其为一个数组&#xff0c;数组里面存放着多个指针&…