在生产者向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. Irrlicht引擎剖析一

    代码风格:  1.接口以I开头,实现以C开头,保存数据的结构体以S开头  2.函数名以小写字母开头,变量以大字母开头  3.接口的公共函数,其参数大部分给了默认值  4.采用名字空间    名字空间i ...

  2. Mybatis——更新DB表的字段时,应该注意的点

    1.记录下哪些表发生了字段更新. 2.利用Navicat将最新的数据库(schema)转储SQL文件到项目的sql目录下,作为备份 3.依次更新 被记录表所对应的Po类,确保类的域和表的字段一一对应, ...

  3. [linux]sudo 出现unable to resolve host 解决方法

    Ubuntu环境, 假设这台机器名字(hostname)叫abc, 每次执行sudo 就出现这个警告讯息:sudo: unable to resolve host abc虽然sudo 还是可以正常执行 ...

  4. MySQL中使用LIMIT分页

    需求:客户端通过传递pageNum(页码)和pageSize(每页显示的条数)两个参数去分页查询数据库表中的数据. 我们知道MySQL提供了分页函数limit m,n,但是该函数的用法和需求不一样,所 ...

  5. 检测ip代理有效性

    转载及总结 转载:https://xw.qq.com/amphtml/20190428A05ZS200 1.telnet 方法 经过测试,会看到存在以下问题: 即使一些代理商能够用telnet测试过关 ...

  6. 深入分析JAVA IO(BIO、NIO、AIO)

    IO的基本常识 1.同步 用户进程触发IO操作并等待或者轮询的去查看IO操作是否完成 2.异步 用户触发IO操作以后,可以干别的事,IO操作完成以后再通知当前线程继续处理 3.阻塞 当一个线程调用 r ...

  7. Python 中操作 MySQL

    引入模块 在py文件中引入pymysql模块 from pymysql import * Connection 对象 用于建立与数据库的连接 创建对象:调用connect()方法 conn=conne ...

  8. 运维自动化之ansible

    Ansible简介 Ansible是一个简单的自动化运维管理工具,基于Python语言实现,由Paramiko和PyYAML两个关键模块构建,可用于自动化部署应用.配置.编排task(持续交付.无宕机 ...

  9. golang list使用 双层 循环 删除 遍历

    queue队列: import ( "container/list" "sync" ) type Queue struct { l *list.List m s ...

  10. python获取当前py文件的文件名或者当前工具箱的名字

    #########################import arcpy import osimport sys ########################################## ...