buffer.memory

Kafka的客户端发送数据到服务器,不是来一条就发一条,而是经过缓冲的,也就是说,通过KafkaProducer发送出去的消息都是先进入到客户端本地的内存缓冲里,然后把很多消息收集成一个一个的Batch,再发送到Broker上去的,这样性能才可能高。

buffer.memory的本质就是用来约束Kafka Producer能够使用的内存缓冲的大小的,默认值32MB

如果buffer.memory设置的太小,可能导致的问题是:消息快速的写入内存缓冲里,但Sender线程来不及把Request发送到Kafka服务器,会造成内存缓冲很快就被写满。而一旦被写满,就会阻塞用户线程,不让继续往Kafka写消息了。

所以“buffer.memory”参数需要结合实际业务情况压测,需要测算在生产环境中用户线程会以每秒多少消息的频率来写入内存缓冲。经过压测,调试出来一个合理值。

与batch.size的区别

batch.size Kafka producers attempt to collect sent messages into
batches to improve throughput. With the Java client, you can use
batch.size to control the maximum size in bytes of each message batch.

buffer.memory Use buffer.memory to limit the total memory that is
available to the Java client for collecting unsent messages. When this
limit is hit, the producer will block on additional sends for as long
as max.block.ms before raising an exception.

总结

  • 注意buffer.memorybatch.size参数的区别
  • 如果要发送大文件的话,要同时提高buffer.memorybatch.size的大小

参考

Kafka关键参数设置 - wwcom123 - 博客园
https://www.cnblogs.com/wwcom123/p/11181680.html

Apache-Kafka, batch.size vs buffer.memory - Stack Overflow

kafka buffer.memory参数入门相关推荐

  1. Kafka精品教学(入门,安装,Springboot整合Kafka)

    ps:本文是博主结合视频和博客学习之后,自己实验总结编写的,如果侵权请联系删除. 要学习kafka首先要了解什么是消息队列,因为Kafka 是一个分布式的基于发布 / 订阅模式的消息队列(Messag ...

  2. 项目报Direct buffer memory错误

    前言 最近项目中出现了Direct buffer memory,然后搜寻网上的资料,大部分的解决方案如下: 网上的解决方案 最近基于Netty的NIO做应用底层通讯架构的实现(服务发现,分布式,高可用 ...

  3. 【Flink】Direct buffer memory taskmanager.memory.task.off-heap.size

    文章目录 1.场景1 1.1 概述 2.场景2 1.场景1 1.1 概述 Direct buffer memory. The direct out-of-memory error has occurr ...

  4. tomcat,zookeeper,activeMQ,Kafka设置jvm参数

    1,tomcat设置jvm参数 设置方法: 在tomcat bin 目录增加配置:setenv.sh #add tomcat pid CATALINA_PID="$CATALINA_BASE ...

  5. 面试题:kafka的ACK参数-1,0,1分别代表的含义

    一.kafka的ACK参数-1,0,1分别代表的含义 这个acks参数在kafka的使用中,是非常核心以及关键的一个参数,决定了很多东西. Kafka producer有三种ack机制 初始化prod ...

  6. kafka的ACK参数的详解

    面试的时候,一旦简历上写了Kafka,几乎必然会被问到一个问题:说说acks参数对消息持久化的影响? 这个acks参数在kafka的使用中,是非常核心以及关键的一个参数,决定了很多东西. 所以无论是为 ...

  7. Kafka Producer重试参数retries设置取舍

    Kafka Producer重试参数retries设置取舍 retries参数在版本0.11.3 建议设置 retries = Integer.MAX_VALUE max.in.flight.requ ...

  8. Direct buffer memory

    Direct buffer memory:主要应NIO引起的. 原因: Java8出现了NIO,缓存,通道,选择器.在 写NIO程序的时候,经常使用ByteBuffer来读或者写入数据,这是一种基于通 ...

  9. 【Kafka】kafka OutOfMemoryError: Direct buffer memory Java heap space

    1.背景 做实验:[Kafka]Kafka如何开启SSL 控制台消费与生产 代码消费与生产 的时候,因为机器太卡导致内存溢出 java.lang.OutOfMemoryError: Direct bu ...

最新文章

  1. R语言合并两个或多个有序数dataframe实战(dataframe的纵向合并):使用R原生方法、data.table、dplyr等方案
  2. python读取中文txt文本-python读取中文txt文本的方法
  3. Coolite TextField添加回车事件
  4. java c 面向对象比较教程_c语言初学指针,对于java面向对象的初理解
  5. C/C++库函数math用法案例篇一
  6. NMS(Non-maximum suppression)非极大抑制
  7. 统计正数和负数的个数然后计算这些数的平均值_计算机中的二进制原来是这样:原码、反码和补码
  8. Windows操作系统发展简史
  9. 国际象棋渲染测试软件,C4D结合Octane Render渲染器制作三维国际象棋建模渲染教程 含中英文字幕...
  10. 每天,每周,每月每隔cron表达式
  11. 电脑网络连接怎么设置
  12. fleck 客户端_C#中使用Fleck实现WebSocket通信简例
  13. c语言用十年算入门,初识C语言_十年饮冰 难凉热血的技术博客_51CTO博客
  14. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccc
  15. FL Studio电音编曲软件V21中文完整版 安装下载教程
  16. 《数值分析》-- 埃尔米特插值与分段插值
  17. 彻底解决汉诺塔问题——递归算法
  18. kindeditor上传图片时候,上传成功了,但是页面上却提示失败
  19. 可以学计算机知识的手游,玩手游还能学知识?寓教于乐的游戏可不止《大航海时代》一个...
  20. Python|求a + aa + aaa + … + aa…a的值

热门文章

  1. tcp转串口_单路RS232/422/485串口服务器产品介绍
  2. 美国西北大学 计算机工程专业排名,权威首发!2018年USNews美国大学研究生计算机工程专业排名榜单...
  3. python矩阵所有元素取整_Python主要逻辑基础与处理
  4. java 获取当前年_java中的反射(三) - kelexin
  5. python网络通信中cs架构_python3基于TCP实现CS架构文件传输
  6. ubuntu mysql 编译_Ubuntu下mysql编译安装
  7. oracle取月去0,Oracle取月份,不带前面的0
  8. php 字符串进行计算_PHP eval() 函数把字符串按照 PHP 代码来计算
  9. python导入requests库_windows环境中python导入requests
  10. 计算机用户改路径,如何更改win7 Users(用户文件夹)文件存放位置?