【消息队列】聊一下生产者消息发送流程

消息发送流程

在这里插入图片描述
1.生产者main线程调用send发送消息,先走拦截器,然后会将消息进行序列化,然后选择对应的分区器,将消息发送到RecordAccumulator中,默认是32m
2.Sender线程会异步读取,要不数据达到batch的大小 进行数据拉取,要么数据达到linger的时间,读取数据之后通过网络进行将数据发送到Kafka集群。如果出现失败在进行重试,直到Broker返回ACK确认信息。
其中设计到的有main线程、Sender线程、拦截器、序列化器、分区器,以及一个双端内存队列。

生产者重要参数

  • bootstrap.servers 生产者连接集群所需的broker地址清单
  • key.serializer和value.serializer 指定发送消息的key和value的序列化类型。一定要写全类名。
  • buffer.memory RecordAccumulator缓冲区总大小,默认32m
  • batch.size 缓冲区一批数据最大值,默认16k
  • linger.ms 如果数据未达到batch.size ,sender等待linger.ms 之后发送数据,默认是0
  • acks 0 不需要数据落盘应答,1leader收到数据应答, -1(ALL)leader+isr队列所有阶段收到数据应答,默认值-1
  • max.in.flight.requests.per.connection 允许最多没有返回ack的次数,默认为5,开启幂等性要保证该值是 1-5的数字。
  • retries:消息发送出现错误的时候,重新发送,默认是int最大值,如果有重试,还想保证消息顺序性,MAX_IN_FLIGHT_REQUESTS_PER_CONNECTION=1否则在重试此失败消息的时候,其他的消息可能发送成功了。
  • retry.backoff.ms 两次重试之间的时间间隔,默认100ms
  • enable.idempotence 是否开启幂等,默认true,开启幂等
  • compression.type 压缩方式,默认值none,支持gzip,snappy等格式,主要通过压缩来提高生产者发送消息的性能,空间换时间。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

7nm舱泊一体SoC的新玩家

2016年,高通推出基于14纳米工艺的汽车座舱芯片骁龙820A,彼时,传统座舱SoC霸主NXP主推的是28纳米工艺的iMX8系列。不过,两款芯片都没有能够达到预期的量产效果。 真正的时代变革,来自于高通在2019年发布的全球首款量产7…

三大前端框架Vue, Angular, React

今天就来好好分析分析这三个框架。 背景介绍 Angular Angular 是 Google 在 2010 年发布的 AngularJS 的升级版,也称为 Angular 2。AngularJS 是由 Misko Hevery 和 Adam Abrons 在 2009 年创建的,最初被称为 "GetAngular",并于…

月薪过 3w 的 软件测试工程师 都是怎么做到的?

对任何职业而言,薪资始终都会是众多追求的重要部分。前几年的软件测试行业还是一个风口,随着不断地转行人员以及毕业的大学生疯狂地涌入软件测试行业,目前软件测试行业“缺口”已经基本饱和。 当然,我说的是最基础的功能测试的岗…

国网B接口调阅实时视频规范解读和代码示例分析

接口描述 国网B接口调阅实时视频,相关规范写的比较粗略: 调阅实时视频包括信令接口和媒体流接口,采用标准的SIP INVITESDP流程,媒体传输使用RTP/RTCP。 SDP 中 RTP Payload 的取值应遵守下面接口参数中的定义: a&a…

代码随想录_二叉树_leetcode236

leetcode 236. 二叉树的最近公共祖先 236. 二叉树的最近公共祖先 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、…

Java阶段一Day19

Java阶段一Day19 文章目录Java阶段一Day19对象流字符流WriterReader转换流缓冲字符流BufferedWriter与PrintWriterBufferedReader异常Throwable、Error、Exception异常处理机制throwthrowstry-catchfinally面试题教师总结新单词JAVA IO对象流对象输入流构造器方法例transient关…

多模态模型技术综述

多模态架构导语1. Image2Text1.1 图像数据集准备1.2 图像to文本的生成模型1.2.1 M2 模型(Meshed—Memory Transformer)Memory-Augmented EncoderMeshed Decoder2. text2Image2.1 生成对抗网络(GAN)2.1.1 文本生成图像基础GAN2.1.2…

第一章 webpack与构建发展简史

官方loader和插件 Loaders | webpack Plugins | webpack 为什么需要构建工具&#xff1f; 初识webpack webpack默认配置文件&#xff1a;webpack.config.js 可以通过webpack --config <config_file_name>指定配置文件 rules是个数组&#xff0c;一个打包配置可以有多…

Hive概论、架构和基本操作

Hive是一个构建在Hadoop上的数据仓库框架&#xff0c;最初&#xff0c;Hive是由Facebook开发&#xff0c;后台移交由Apache软件基金会开发&#xff0c;并做为一个Apache开源项目。 Hive是基于Hadoop的一个数据仓库工具&#xff0c;可以将结构化的数据文件映射为一张数据库表&a…

【数据库】面试题合集

1. 什么是索引?mysql 索引类型&#xff1f;索引是一种数据结构,可以帮助我们快速的进行数据的查找.1.普通索引2.唯一索引3.主键索引4.组合索引5.全文索引参考链接&#xff1a;https://www.cnblogs.com/luyucheng/p/6289714.html2. 索引是个什么样的数据结构呢?索引的数据结构…

【JS运算】分组求和/平均值(reduce函数)

对于数组求和的问题&#xff0c;使用reduce函数能够最快的解决 如果你还不会reduce函数&#xff0c;可以看这一篇&#xff1a; reduce函数的使用 思路 reduce函数对相同group的值进行迭代求和 将分组的总和除以组里的个数得到平均值&#xff0c;然后存储起来 Sum函数&#x…

2023 年 MQTT 协议的 7 个技术趋势|描绘物联网的未来

MQTT 是物联网消息传输标准协议&#xff0c;其采用极其轻量级的发布订阅消息模型&#xff0c;以可扩展、可靠且高效的方式连接物联网设备。 自 1999 年 IBM 发布 MQTT 以来已经过去了二十多年&#xff0c;而自 2012 年 EMQ 在 GitHub 上发布开源 MQTT 消息服务器 EMQX&#xf…

Python 小型项目大全 46~50

# 四十六、百万骰子投掷统计模拟器 原文&#xff1a;http://inventwithpython.com/bigbookpython/project46.html 当你掷出两个六面骰子时&#xff0c;有 17%的机会掷出 7。这比掷出 2 的几率好得多&#xff1a;只有 3%。这是因为只有一种掷骰子的组合给你 2&#xff08;当两个…

文件:IO流

1. 什么是IO /O 即输入Input/ 输出Output的缩写&#xff0c;其实就是计算机调度把各个存储中&#xff08;包括内存和外部存储&#xff09;的数据写入写出的过程&#xff1b;java中用“流&#xff08;stream&#xff09;”来抽象表示这么一个写入写出的功能&#xff0c;封装成一…

黑马2023JavaScript笔记

一、js知识点 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-widt…

鸿鹄工程项目管理系统源码 Spring Cloud+Spring Boot+Mybatis+Vue+ElementUI+前后端分离构建工程项目管理系统

鸿鹄工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离构建工程项目管理系统 1. 项目背景 一、随着公司的快速发展&#xff0c;企业人员和经营规模不断壮大。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性&#xff0c;公司对内部工程管…

若依数据隔离 ${params.dataScope} 替换 优化为sql 替换

若依数据隔离 ${params.dataScope} 替换 优化为sql 替换 安全问题:有风险的SQL查询&#xff1a;MyBatis解决 若依框架的数据隔离是通过 ${params.dataScope} 实现的 但是在代码安全扫描的时候$ 符会提示有风险的SQL查询&#xff1a;MyBatis 所以我们这里需要进行优化参考: M…

医院不良事件上报系统源码,全套源代码

不良事件上报系统源码&#xff0c;医院安全不良事件管理系统源码&#xff0c;医院不良事件上报源码 技术架构&#xff1a;前后端分离&#xff0c;仓储模式&#xff0c;BS架构&#xff0c;有演示&#xff0c;已在多家医院完美运营。 相关技术&#xff1a;PHPvscodevue2elementl…

QML控件--Container

文章目录一、控件基本信息二、控件说明三、属性成员四、成员函数一、控件基本信息 Import Statement: import QtQuick.Controls 2.14 Since: Qt 5.7 Inherits: Control Inherited By: DialogButtonBox, MenuBar, SwipeView, and TabBar 二、控件说明 Container&#xff08;容…

每日一问-ChapGPT-20230414-中医基础-四诊之问诊

文章目录每日一问-ChapGPT系列起因每日一问-ChapGPT-20230414-中医基础-四诊之问诊中医中的望闻问切介绍&#xff0c;以及对应的名家问诊的具体细节问诊拓展1. 一问寒热二问汗2. 三问头身四问便3. 五问饮食六问胸4. 七聋八渴俱当辨5. 九问旧病十问因6. 再问服药参机辨当日总结每…
最新文章