在生产者向broker发送消息时,需要配置不同的参数来确保发送成功。

acks = all         #指定分区中有多少副本必须收到这条消息,生产者才认为这条消息发送成功

        acks = 0      #生产者发送消息之后不需要等待任何服务端的响应
acks = 1    #只要分区的leader副本成功写入消息,那么它就会收到服务端的成功响应
acks = -1 或all   #生产者在发送消息之后,需要等待ISR中的所有副本都成功写入消息之后,才能够收到来自服务端的成功响应。 batch.size = 16384 #ProducerBatch 最大缓存空间,默认16KB bootstrap.servers =[192.1.1.2:9092] #kafka集群 buffer.memory = 33554432 #RecordAccumulator消息累加器最大存储空间,默认32MB client.id = #客户端id compression.type = none #设置消息的压缩格式("gzip,snappy,lz4")\
      对消息压缩可以极大的减少网络传输、降低网络IO,从而提高整体性能。这是一种时间换空间的优化方式,如果对延时性要求高,则不推荐对消息进行压缩 connections.max.idle.ms = 540000 #设置多久之后关闭闲置连接,默认9分钟 enable.idempotence = false interceptor.classes = [] #拦截器配置 key.serializer = class org.apache.kafka.common.serialization.IntegerSerializer #key的序列化器 linger.ms = 0 #生产者在客户端发送ProducerBatch被填满或等待时间超过linger.ms值是发出去
#指定生产者发送producerBatch 之前等待更多消息加入producerRecord加入ProducerBatch的时间 max.block.ms = 60000 #用来控制KafkaProducer中send()方法和partitionsFor()方法的阻塞时间,当生产者的发送缓冲区
#已满,或者没有可用的元数据时,这些方法就会阻塞。 max.in.flight.requests.per.connection = 5 #客户端与broker端连接最多缓存5个未响应的请求(即发送到broker端,没来得及收到响应),
#如果超过了就不能再发送请求,可以通过这个参数大小来判断是否有消息堆积 max.request.size = 1048576 #生产者客户端能发送的消息的最大值,默认1M(不建议改,会引起联动) metadata.max.age.ms = 300000 #元数据更新时间,5分钟 partitioner.class = class com.zpb.partitioner.CustomPartition   #自定义key分区器,可以根据指定的key来作特殊的的相关业务 retries = 0 #生产者重试次数,默认0,在发生异常时不进行任何的重试。在发送数据时会遇到2种异常,一种是可恢复的,一种是不可
#恢复的,如:leader的选举,网络抖动等这些异常是可以恢复的,这个时候设置retries大于0就可以进行重试,在网络稳定
#或者leader选举完后,这种异常就会消失,数据在重发时就会正常,在不可恢复异常时,如超过了max.request.size最大值
#时,这种错误是不可恢复的 retry.backoff.ms = 100 #重试之间的时间间隔,最好预估一下异常恢复的时间间隔,让重试时间大于异常恢复时间, value.serializer = class org.apache.kafka.common.serialization.StringSerializer #value序列化器

kafka producer 生产者客户端参数配置的更多相关文章

  1. 初识 Kafka Producer 生产者

    目录 1.KafkaProducer 概述 2.KafkaProducer 类图 3.KafkaProducer 简单示例 温馨提示:整个 Kafka Client 专栏基于 kafka-2.3.0 ...

  2. kafka生产者客户端

    kafka的生产者 1. 生产者客户端开发 ​ 熟悉kafka的朋友都应该知道kafka客户端有新旧版本,老版本采用scala编写,新版本采用java编写.随着kafka版本的升级,旧版本客户端已经快 ...

  3. Apache Kafka Producer For Beginners

    在我们上一篇Kafka教程中,我们讨论了Kafka Cluster.今天,我们将通过示例讨论Kafka Producer.此外,我们将看到KafkaProducer API和Producer API. ...

  4. Scala调用Kafka的生产者和消费者Demo,以及一些配置参数整理

    kafka简介 Kafka是apache开源的一款用Scala编写的消息队列中间件,具有高吞吐量,低延时等特性. Kafka对消息保存时根据Topic进行归类,发送消息者称为Producer,消息接受 ...

  5. 4 kafka集群部署及kafka生产者java客户端编程 + kafka消费者java客户端编程

    本博文的主要内容有   kafka的单机模式部署 kafka的分布式模式部署 生产者java客户端编程 消费者java客户端编程 运行kafka ,需要依赖 zookeeper,你可以使用已有的 zo ...

  6. Kafka学习笔记3--Kafka的生产者和消费者配置

    下载解压 kafka 后,在 kafka/config 下有 3 个配置文件与主题及其生产.消费相关. server.properties--服务端配置 producer.properties--生产 ...

  7. Spring Kafka整合Spring Boot创建生产者客户端案例

    每天学习一点点 编程PDF电子书.视频教程免费下载:http://www.shitanlife.com/code 创建一个kafka-producer-master的maven工程.整个项目结构如下: ...

  8. Kafka技术内幕 读书笔记之(二) 生产者——新生产者客户端

    消息系统通常由生产者(producer ). 消费者( consumer )和消息代理( broker ) 三大部分组成,生产者会将消息写入消息代理,消费者会从消息代理中读取消息 . 对于消息代理而言 ...

  9. java kafka单列模式生产者客户端

    1.所需要的依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="ht ...

随机推荐

  1. 为什么说Redis是单线程的?

    一.前言 近乎所有与Java相关的面试都会问到缓存的问题,基础一点的会问到什么是“二八定律”.什么是“热数据和冷数据” ,复杂一点的会问到缓存雪崩.缓存穿透.缓存预热.缓存更新.缓存降级等问题,这些看 ...

  2. .net常用属性

    1.   在ASP.NET中专用属性:               获取服务器电脑名:Page.Server.ManchineName               获取用户信息:Page.User   ...

  3. Selenium结合BeautifulSoup4编写简单爬虫

    在学会了抓包,接口请求(如requests库)和Selenium的一些操作方法后,基本上就可以编写爬虫,爬取绝大多数网站的内容. 在爬虫领域,Selenium永远是最后一道防线.从本质上来说,访问网页 ...

  4. 一台服务器配置多个mysql实例

    在公司资源紧张的情况下,需要在一台服务器上部署多个数据库实例,现在就来实战一下该情况. 需要启动两个不同的端口,分别是3306和3307 [root@node1 ~]# mkdir /u01/mysq ...

  5. 'builtin_function_or_method' object has no attribute 'translate'

    'builtin_function_or_method' object has no attribute 'translate' 首先这个错误的意思是:内建函数或方法对象不能转换成对应的属性. #错误 ...

  6. cxf报错 Cannot find any registered HttpDestinationFactory from the Bus.

    错误信息:Cannot find any registered HttpDestinationFactory from the Bus. 报错主要是因为缺少jetty依赖 一般添加如下依赖即可 < ...

  7. JSON字符串控制台格式化输出 java

    1.正常情况下返回的json数据格式如下: {"header":{"transSn":"e33128bb7622462ebfb2cbfcc46baa1 ...

  8. tomcat单机多实例

    catalina.home指向公用信息的位置,就是bin和lib的父目录. catalina.base指向每个Tomcat目录私有信息的位置,就是conf.logs.temp.webapps和work ...

  9. QMessageBox改变大小

    创建一个QMessageBox: QMessageBox msgBox(this);msgBox.setWindowTitle(tr("MailBox Location"));ms ...

  10. 移动端——页面点击( touchend -> click)

    手机端页面好多要注意的,点击事件就是其中一个: 在手机端页面中使用 click,安卓手机能正常实现点击效果,可是苹果手机不能点击:用 touchend 代替 click,苹果手机中能点击,但是可能出现 ...