https://www.cnblogs.com/luckyhui28/p/12001798.html

acks

这个参数用老指定分区中必须由多少个副本收到消息,之后生产者才会认为这条消息写入是成功的。acks参数有三种类型的值(都是字符串类型)。

  • acks=1 默认值为1.生产者发送消息之后,只要分区的leader副本成功的写入消息,生产端就会收到来自服务端的成功响应,说明发送成功。如果消息无法写入leader副本,比如在leader副本崩溃、重新选举新的leader副本的过程中,生产者就会收到一个错误的响应,为了避免消息丢失,生产者就会选择重发消息;如果消息写入leader副本并成功响应给生产者,并且在其他follower副本拉取之前leader副本崩溃,此时消息还会丢失,因为新选举的leader副本中并没有这条对应的消息。acks设置为1,是消息可靠性和吞吐量之间的这种方案。
  • acks=0 生产者发送消息之后,不需要等待任何服务端的响应。如果在消息从发送到写入kafka的过程中出现异常,导致kafka并没有收到消息,此时生产者是不知道的,消息也就丢失了。akcs设置为0时,kafka可以达到最大的吞吐量。
  • acks=-1或acks=all 生产者在消息发送之后,需要等待isr中所有的副本都成功写入消息此案能够收到服务端的成功响应。acks设置为-1,可以达到相对最强的可靠性。但这不一定是最可靠的,因为isr中可能就只有leader副本,这样就退化成了acks=1 的情况。

注意,acks参数是一个字符串类型,而不是一个整数类型。配置错误会报异常。

max.request.size

生产者客户端能发送消息的最大值,默认值为1048576B,1MB。不建议盲目修改,这个参数涉及其他的一些参数的联动,比如broker端的message.max.bytes参数,如果broker的message.max.bytes参数设置为10,而max.request.size设置为20,当发送一条大小为15B的消息时,生产者参数就会报错。

retries和retry.backoff.ms

生产者重试次数,默认值为0。消息在从生产者从发出到成功写入broker之前可能发生一些临时性异常,比如网络抖动、leader副本选举等,这些异常往往是可以自行恢复的,生产者可以配置retries的值,通过生产端的内部重试来恢复而不是一味的将异常抛给生产者;如果重试达到设定次数,生产者才会放弃重试并抛出异常。但是!并不是所有的异常都可以通过重试来解决,比如消息过大,超过max.request.size参数配置的数值。

重试还和参数retry.backoff.ms有关,默认值为100,用来设定两次重试之间的时间间隔,避免无效的频繁重试。在配置retries和retry.backoff.ms之前,最好先估算一下可能的异常恢复时间,这样可以设定总的重试时间要大于异常恢复时间,避免生产者过早的放弃重试。

connections.max.idele.ms

这个参数用来制动多久之后关闭限制的连接,默认值540000(ms),9分钟、。

linger.ms

这个参数用来指定生产者发送ProducerBatch之前等待更多的消息(ProducerRecord)假如ProducerBatch的时间,默认值为0。ProducerBatch在被填满或者时间超过linger.ms值时发送出去。增大这个参数的值回增加消息的延迟(消费端接收延迟),但能够提升一定的吞吐量。

receive.buffer.bytes

这个参数用来设置socket接收消息缓冲区的大小,默认值为32768(B),即32KB。如果设置为-1,则使用操作系统的默认值。如果Producer和Kafka处于不同的机房,则可以适当的调大这个参数值。

send.buffer.bytes

这个参数用来设置socket发送消息缓冲区的大小,默认值为131072(B),即128KB。与receive.buffer.bytes参数一样,如果设置为-1,则使用操作系统的默认值。

request.timeout.ms

这个参数用来配置Producer等待请求响应的最长时间,默认值为3000(ms)。请求超时之后可以选择进行重试。这个参数需要比broker端参数replica.lag.time.max.ms值要大,这样可以介绍因客户端重试引起的消息重复的概率。

enable.idempotence

幂等性开启,默认为false。

bootstrap.servers

broker集群地址,可以设置一到多个,建议至少设置为2个,若在应用程序启动的时候,一个broker节点宕机,还可以对另一个已提供节点进行连接。

[转帖]Kafka生产者——重要参数配置的更多相关文章

  1. kafka producer 生产者客户端参数配置

    在生产者向broker发送消息时,需要配置不同的参数来确保发送成功. acks = all #指定分区中有多少副本必须收到这条消息,生产者才认为这条消息发送成功 acks = 0 #生产者发送消息之后 ...

  2. Kafka 深入核心参数配置

    Kafka 真是一个异常稳定的组件,服务器上我们部署了 kafka_2.11-1.0.1 版本的 kafka 除了几次计算时间太长触发了 rebalance 以外,基本没有处理过什么奇怪的问题. 但是 ...

  3. kafka部分重要参数配置-broker端参数

    broker端参数主要在config/server.properties目录下设置: 启动命令:nohup ./kafka-server-start.sh -daemon ../config/serv ...

  4. kafka优化–JVM参数配置优化

    https://blog.csdn.net/u013063153/article/details/73826403

  5. kafka生产者调优手册

    目录 第一章 kafka硬件配置选择 1.1 场景说明 1.2 服务器台数选择 1.3 磁盘选择 1.4 内存选择(堆内存,页缓存) 1.4.1 堆内存配置 1.4.2 页缓存选择 1.5 cpu选择 ...

  6. 【转】 详解Kafka生产者Producer配置

    粘贴一下这个配置,与我自己的程序做对比,看看能不能完善我的异步带代码:   -----------------------------------------    详解Kafka生产者Produce ...

  7. [转帖]kafka入门:简介、使用场景、设计原理、主要配置及集群搭建

    kafka入门:简介.使用场景.设计原理.主要配置及集群搭建 http://www.aboutyun.com/thread-9341-1-1.html 还没看完 感觉挺好的. 问题导读: 1.zook ...

  8. springboot配置kafka生产者和消费者详解

    在原有pom.xml依赖下新添加一下kafka依赖ar包 <!--kafka--> <dependency> <groupId>org.springframewor ...

  9. kafka 参数配置 1

    kafka 参数配置 #参数配置 * broker.id : kafka 集群的唯一,标识每个broker * log.dirs : 指定kafka持久化消息的目录,可以设置多个目录,如:/home/ ...

  10. Kafka生产者-向Kafka中写入数据

    (1)生产者概览 (1)不同的应用场景对消息有不同的需求,即是否允许消息丢失.重复.延迟以及吞吐量的要求.不同场景对Kafka生产者的API使用和配置会有直接的影响. 例子1:信用卡事务处理系统,不允 ...

随机推荐

  1. 0X01 位运算笔记

    位运算,经常可以用来处理一些数学或动归方面的问题,通常会在数据范围较小的情况下使用. 为方便起见,一个 \(\mathrm{n}\) 位二进制数从右到左分别为第 \(\mathrm{0 \sim n ...

  2. 动态规划问题(三)最长递增子序列长度(LIS)

    问题描述 ​ 有一个数组,它内部的顺序是乱序的,现在要求你找出该数组中的最长的递增子序列长度. ​ 例如:对于数组 {10, 20, 9, 33, 21, 50, 41, 60, 80},它的最长递增 ...

  3. 小熊派:用OpenHarmory3.0点亮LED

    摘要:作为一个代表性的完整的开发,本案例可以分成3大部分:代码文件的规划,LED灯的驱动开发,点亮LED的业务开发. 本文分享自华为云社区<在小熊派Micro上用OpenHarmory3.0点亮 ...

  4. 如何构建面向海量数据、高实时要求的企业级OLAP数据引擎?

    在字节跳动各产品线飞速成长的过程中,对数据分析能力也提出了更高的要求,现有的主流数据分析产品都没办法完全满足业务要求.因此,字节跳动在ClickHouse引擎基础上重构了技术架构,实现了云原生环境的部 ...

  5. 火山引擎 DataLeap:数据秒级生产,揭秘电商实时数仓最佳实践!

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 一年一度的「三八大促」刚刚落下帷幕,各大电商平台纷纷推出补贴.营销等玩法,力图推动持续增长.而电商平台持续增长,离 ...

  6. ImportError: /lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found

    [root@localhost PaddleOCR]# strings /lib64/libstdc++.so.6 | grep 'CXXABI' CXXABI_1.3 CXXABI_1.3.1 CX ...

  7. SrpingBoot 集成 xxl-job 部署在 Docker 上碰到的坑

    如果不指定 xxl.job.executor.ip,默认会用 Docker 的IP,注册到 xxl-job 里面,这时候无法回调 如果xxl.job.executor.ip.xxl.job.execu ...

  8. linux day1:VMware虚拟机配置 CentOS系统配置

    目录 运维岗位说明 计算机的种类 服务器的种类 服务器的品牌 服务器内部组成 缓存和缓冲 服务器磁盘阵列 raid5 linux系统发展史 去IOE运动 虚拟化技术 虚拟化软件下载 VMware安装 ...

  9. Clion 中 Rust 插件开启 WSL 调试

    Rust Linux 配置 wsl 中执行命令: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh 按照可能会卡住,需要在本 ...

  10. 《机器学习实战》 | 第3章 决策树(含Matplotlib模块介绍)

    系列文章:<机器学习实战>学习笔记 本篇文章使用到的完整代码:Here 决策树 优点:计算复杂度不高,输出结果易于理解,对中间值的缺失不敏感,可以处理不相关特征数据. 缺点:可能会产生过度 ...