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_任务发送流程_分区器过滤器_生产者吞吐量_丢数_幂等性_事务性消息

主线程中经过操作,在内存中根据分区器生成多个DQuence,然后通过sander线程,等到批次数据达到16K的时候,就会来拉取数据。

或者根据linger.ms的数据,按照时间来拉取。

一般来说在生产环境之中这两个值会进行修改。

接下来DQuence分区的数据要发往不同的kafka节点,以不同的节点为key,后面跟随对应请求,可以发送最多五个没有响应的请求,等到第一个请求得到答复,才会继续发送请求

副本同步机制?

ask:0不需要反馈

ask:1发送的数据leader收到就可,即使数据同步没有完成也可以

ask:-1/all,需要leader和ISR队列的所有节点收集数据才能应答

之后清理请求以及数据---失败会进行重试

retries:默认int最大值,直到成功

海量数据按照分区进行分装,合理控制分区任务实现负债均衡

(1)便于合理使用存储资源,每一个partiton在一个Broker上存储,可以将海量数据按分区切割成一块一块的数据存储在多个Broker上。合理控制分区任务,实现负载均衡效果

(2)提供并行度,生产者以分区为单位发送数据;消费者以分区为单位进行消费数据。

分区策略:

?当没有指定分区的时候,但是有kv值的时候,根据key的hash值发送到对应分区

?因此在生产环境之中可以用表名作为一个key值,这样同表的hashcode值是一致的,就会发送到同一个分区之中;

---

自定义分区器:

业务需求,将含有某个关键词的信息分到指定分区之上

1、实现partitioner重写方法

2、

?使用场景:过滤目标信息,过滤脏数据

?(三)生产者如何提高吞吐量

batch.size:批次大小,默认为16k(时效性)

&&

linger.ms:等待时间,修改为5-100ms(单次信息大小)

compression.type:压缩snappy

RecordAccumulator:缓冲区大小,修改为64M(默认为32M)

应答机制:

ask:1比0可靠一些

?当ask为-1的时候的数据可靠问题:

为-1的时候数据是十分可靠的,维护了ISR(和leader保持同步的F+L集合)

如果F30s未同步会被踢出ISR,(time.max.ms设定),当分区副本为1的时候相当于就是ack=1

?当ask为-1的时候的数据重复性问题:

当ask信息要返回的时候挂掉了,此时已经完成了数据的同步,但是没有返回,所以下一次信息会继续发送,会导致数据的重复发送到kafka中。

消息的幂等性:

?<PID,Partition,SeqNumber>

每次kafka重启都会富裕一个新的PID,因此kafka只保证在单分区内的会话是不重复的

(单分区单会话不重复)

一个topic 多个分区

?PID一致,Partition一致,seqNum一致,就会在内存中直接干掉==》保证消息的幂等性

?enable.idempotence

此时还是有问题,当kafka挂掉之后PID重新分配,那么还是会产生重复数据,此时--》生产者事务

(四)生产者事务

生产者事务的开启必须开启幂等性

事务在提交过程中需要持久化到硬盘中,(先储存到主题再储存到磁盘里 )

每一个节点都有一个事务协调器,会根据主题

事务的事务id的值找到50个分区的其中一个分区,这个分区leader副本所在的节点就成为了这个事务所对应的事务协调器节点。

生产者必须有一个唯一的事务ID,事务ID会被持久化到主题里,主题会持久化到硬盘,所以事务ID不会发生改变

?

?多分区的数据有序性?

多分区的数据有序性,在消费者处排序,损失效率,获得顺序

?InFlightRequests默认每一个broker最多缓存5个请求。

在kafka集群之中(由于开启了幂等性,有用一个单调递增的序列号),

?即使发送数据的顺序错误了,也会根据单调递增的值来寻找请求的顺序,以此来保证数据的有序性(1,落盘。2,落盘,4到了不落,5不落,3到了落盘,之后4落5落),如果?InFlightRequests改为了6,那么就不一定能保证有序了,因为在broker中最多允许5个未响应的请求。

Zookeeper

?

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-03-22 20:40:57  更:2022-03-22 20:41:57 
 
开发: 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年11日历 -2024/11/24 6:26:23-

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