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. 通过腾讯网页快捷登录协议截取 QQ邮箱 的 QQClientkey / QQKey 教程

    最近发现之前的老代码已经不能获取QQ邮箱的Clientkey,经过一番调试后发现QQ邮箱更新了获取的流程,所以决定重新发布一篇文章,废话不多,直接上教程,喜欢的朋友记得点赞加关注. step 1 首先 ...

  2. Spring Boot3 系列:Spring Boot3 跨域配置 Cors

    目录 什么是CORS? Spring Boot 如何配置CORS? 前端代码 注解配置 全局配置 过滤器配置 注意事项 什么是CORS? CORS,全称是"跨源资源共享"(Cros ...

  3. TooKit助力开发者上云

    本文分享自华为云社区<华为云Classroom赋能-TooKit助力开发者上云>,作者:华为云PaaS服务小智 . 对于资深程序员而言,IDE是必不可少的,它好比是剑客手中的宝剑,IDE帮 ...

  4. MES/MOM国内市场现状趋势与新生态模式参考

    本文分享自华为云社区<工业互联网系列(七)MES/MOM国内市场现状趋势与新生态模式参考>,作者:云起MAE . 国内工业互联网平台服务整体围绕数字化及数据价值挖掘的底层逻辑没有变,变的是 ...

  5. 数仓安全测试之SSRF漏洞

    摘要:SSRF (Server-Side Request Forgery,服务器端请求伪造)是指由攻击者构造请求,然后利用服务器的漏洞以服务端的身份向内网发送请求对内网发起攻击. 本文分享自华为云社区 ...

  6. 手把手带你入门加密算法的Python实现

    摘要:一个简单的md5加密算法,带你解开所谓"加密"过程的神秘面纱. 一个简单的md5加密算法,非常适合新手练习 链接:> aHR0cDovL3d3dy5jaHVjaHVqa ...

  7. GIS拓扑讲解点线面几何体的拓扑关系判断及运算分析_turf案例

    Turf.js简介 Turf.js是JavaScript  空间分析库,由Mapbox 提供,Turf 实现了 空间分析操作,例如生成缓冲区.计算等高线,建立 TIN 等: 空间几何对象关系的计算,点 ...

  8. 【flask】flask请求上下文分析 threading.local对象 偏函数 flask1.1.4生命执行流程 wtforms

    目录 上节回顾 今日内容 1 请求上下文分析(源码:request原理) 1.1 导出项目的依赖 1.2 函数和方法 1.3 threading.local对象 1.4 偏函数 1.5 flask 整 ...

  9. 【辅助工具】Apifox

    注意事项 需要刷新权限 请求方式需要对应

  10. 工程开发 | CMake工程目录结构和多线程

    CMake工程目录结构 lib: 生成的库文件 src: 源文件(.cpp .cc) include: 头文件(.h .hpp) build: 一般在这个文件夹下执行cmake ..(..之前有一个空 ...