Kafka ProducerConfig和ConsumerConfig 释义
Kafka客户端开发中有一个ProducerConfig和ConsumerConfig,熟悉这两个文件内容的含义对我们使用,调优Kafka是非常有帮助的
生产者配置参数释义
1.bootstrap.servers 指定Kafka集群所需的broker地址清单,默认 ""
2.metadata.max.age.ms 强制刷新元数据时间,毫秒,默认300000,5分钟
3.batch.size 指定ProducerBatch内存区域的大小,默认16kb
4.acks 指定分区中必须有多少个副本收到这条消息,才算消息发送成功,默认值1,字符串类型
5.linger.ms 指定ProducerBatch在延迟多少毫秒后再发送,但如果在延迟的这段时间内batch的大小已经到了batch.size设置的大小,那么消息会被立即发送,不会再等待,默认值0
6.client.id 用户设定,用于跟踪记录消息,默认 ""
7.send.buffer.bytes Socket发送缓冲区大小,默认128kb,-1将使用操作系统的设置
8.receive.buffer.bytes Socket接收缓冲区大小,默认32kb,-1将使用操作系统的设置
9.max.request.size 限制生产者客户端发送消息的最大值,默认1MB
10.reconnect.backoff.ms 连接失败后,尝试连接Kafka的时间间隔,默认50ms
11.reconnect.backoff.max.ms 尝试连接到Kafka,生产者客户端等待的最大时间,默认1000ms
12.max.block.ms 控制生产者客户端send()方法和partitionsFor()方法的阻塞时间。当生产者的发送缓存区已满,或者没有可用元数据时,这些方法就会阻塞,默认60s
13.buffer.memory 生产者客户端中用于缓存消息的缓存区大小,默认32MB
14.retry.backoff.ms 消息发送失败重试时间间隔,默认100ms
15.compression.type 指定消息的压缩方式,默认不压缩
16.metrics.sample.window.ms 样本计算时间窗口,默认30000ms
17.metrics.num.samples 用于维护metrics的样本数量,默认2
18.metrics.log.level metrics日志记录级别,默认info
19.metric.reporters 类的列表,用于衡量指标,默认空list
20.max.in.flight.requests.per.connection 可以在一个connection中发送多个请求,叫作一个flight,这样可以减少开销,但是如果产生错误,可能会造成数据的发送顺序改变,默认5
21.retries 消息发送失败重试次数,默认0
22.key.serializer key的序列化方式
23.value.serializer value序列化类方式
24.connections.max.idle.ms 设置多久之后关闭空闲连接,默认540000ms
25.partitioner.class 分区类,实现Partitioner接口,可以自定义分区规则
26.request.timeout.ms 客户端将等待请求的响应的最大时间,如果在这个时间内没有收到响应,客户端将重发请求,超过重试次数将抛异常,默认30000ms
27.interceptor.classes 拦截器类,实现ProducerInterceptor接口,自定义拦截器
28.enable.idempotence true为开启幂等性
29.transaction.timeout.ms 事务超时时间,默认60000ms
30.transactional.id 设置事务id,必须唯一
消费者配置参数释义
1.group.id 消费者所属消费组的唯一标识
2.max.poll.records 一次拉取请求的最大消息数,默认500条
3.max.poll.interval.ms 指定拉取消息线程最长空闲时间,默认300000ms
4.session.timeout.ms 检测消费者是否失效的超时时间,默认10000ms
5.heartbeat.interval.ms 消费者心跳时间,默认3000ms
6.bootstrap.servers 连接集群broker地址
7.enable.auto.commit 是否开启自动提交消费位移的功能,默认true
8.auto.commit.interval.ms 自动提交消费位移的时间间隔,默认5000ms
9.partition.assignment.strategy 消费者的分区配置策略, 默认 RangeAssignor
10.auto.offset.reset 如果分区没有初始偏移量,或者当前偏移量服务器上不存在时,将使用的偏移量设置,earliest从头开始消费,latest从最近的开始消费,none抛出异常
11.fetch.min.bytes 消费者客户端一次请求从Kafka拉取消息的最小数据量,如果Kafka返回的数据量小于该值,会一直等待,直到满足这个配置大小,默认1b
12.fetch.max.bytes 消费者客户端一次请求从Kafka拉取消息的最大数据量,默认50MB
13.fetch.max.wait.ms 从Kafka拉取消息时,在不满足fetch.min.bytes条件时,等待的最大时间,默认500ms
14.metadata.max.age.ms 强制刷新元数据时间,毫秒,默认300000,5分钟
15.max.partition.fetch.bytes 设置从每个分区里返回给消费者的最大数据量,区别于fetch.max.bytes,默认1MB
16.send.buffer.bytes Socket发送缓冲区大小,默认128kb,-1将使用操作系统的设置
17.receive.buffer.bytes Socket发送缓冲区大小,默认64kb,-1将使用操作系统的设置
18.client.id 消费者客户端的id
19.reconnect.backoff.ms 连接失败后,尝试连接Kafka的时间间隔,默认50ms
20.reconnect.backoff.max.ms 尝试连接到Kafka,生产者客户端等待的最大时间,默认1000ms
21.retry.backoff.ms 消息发送失败重试时间间隔,默认100ms
22.metrics.sample.window.ms 样本计算时间窗口,默认30000ms
23.metrics.num.samples 用于维护metrics的样本数量,默认2
24.metrics.log.level metrics日志记录级别,默认info
25.metric.reporters 类的列表,用于衡量指标,默认空list
26.check.crcs 自动检查CRC32记录的消耗
27.key.deserializer key反序列化方式
28.value.deserializer value反序列化方式
29.connections.max.idle.ms 设置多久之后关闭空闲连接,默认540000ms
30.request.timeout.ms 客户端将等待请求的响应的最大时间,如果在这个时间内没有收到响应,客户端将重发请求,超过重试次数将抛异常,默认30000ms
31.default.api.timeout.ms 设置消费者api超时时间,默认60000ms
32.interceptor.classes 自定义拦截器
33.exclude.internal.topics 内部的主题:一consumer_offsets 和一transaction_state。该参数用来指定 Kafka 中的内部主题是否可以向消费者公开,默认值为 true。如果设置为 true,那么只能使用 subscribe(Collection)的方式而不能使用 subscribe(Pattern)的方式来订阅内部主题,设置为 false 则没有这个限制。
34.isolation.level 用来配置消费者的事务隔离级别。如果设置为“read committed”,那么消费者就会忽略事务未提交的消息,即只能消 费到 LSO (LastStableOffset)的位置,默认情况下为 “read_uncommitted”,即可以消 费到 HW (High Watermark)处的位置

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
死磕 java并发包之AtomicInteger源码分析
问题 (1)什么是原子操作? (2)原子操作和数据库的ACID有啥关系? (3)AtomicInteger是怎么实现原子操作的? (4)AtomicInteger是有什么缺点? 简介 AtomicInteger是java并发包下面提供的原子类,主要操作的是int类型的整型,通过调用底层Unsafe的CAS等方法实现原子操作。 还记得Unsafe吗?点击链接直达【死磕 java魔法类之Unsafe解析】 原子操作 原子操作是指不会被线程调度机制打断的操作,这种操作一旦开始,就一直运行到结束,中间不会有任何线程上下文切换。 原子操作可以是一个步骤,也可以是多个操作步骤,但是其顺序不可以被打乱,也不可以被切割而只执行其中的一部分,将整个操作视作一个整体是原子性的核心特征。 我们这里说的原子操作与数据库ACID中的原子性,笔者认为最大区别在于,数据库中的原子性主要运用在事务中,一个事务之内的所有更新操作要么都成功,要么都失败,事务是有回滚机制的,而我们这里说的原子操作是没有回滚的,这是最大的区别。 源码分析 主要属性 // 获取Unsafe的实例 private static final Un...
- 下一篇
基于Spring Security Oauth2的SSO单点登录+JWT权限控制实践
概 述 在前文《基于Spring Security和 JWT的权限系统设计》之中已经讨论过基于 Spring Security和 JWT的权限系统用法和实践,本文则进一步实践一下基于 Spring Security Oauth2实现的多系统单点登录(SSO)和 JWT权限控制功能,毕竟这个需求也还是蛮普遍的。 代码已开源,放在文尾,需要自取 理论知识 在此之前需要学习和了解一些前置知识包括: Spring Security:基于 Spring实现的 Web系统的认证和权限模块 OAuth2:一个关于授权(authorization)的开放网络标准 单点登录 (SSO):在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统 JWT:在网络应用间传递信息的一种基于 JSON的开放标准((RFC 7519),用于作为JSON对象在不同系统之间进行安全地信息传输。主要使用场景一般是用来在 身份提供者和服务提供者间传递被认证的用户身份信息 要完成的目标 目标1:设计并实现一个第三方授权中心服务(Server),用于完成用户登录,认证和权限处理 目标2:可以在授权中心下挂载任意多个...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS8安装Docker,最新的服务器搭配容器使用
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题