下载解压 kafka 后,在 kafka/config 下有 3 个配置文件与主题及其生产、消费相关。
  • server.properties--服务端配置
  • producer.properties--生产端配置
  • consumer.properties--消费端配置
这里主要介绍生产者和消费者的配置。
 
一、生产者配置
producer.properties
#指定连接 Kafka 集群所需的 broker 地址清单
bootstrap.servers=localhost: #producer 用于压缩数据的压缩类型,压缩类型有none、gzip、snappy,默认是无压缩。
#压缩最好用于批量处理,批量处理消息越多,压缩性能越好。
#消息被压缩后发送到broker集群,broker集群是不会进行解压缩的,只会把消息发送到消费者集群,然后由消费者来解压缩。
compression.type=none #生产者生产的消息被发送到哪个block,需要一个分组策略。
#分区处理类,默认partitioner基于 key 的 hash 表。
#partitioner.class= # 在向 producer 发送 ack 之前,broker允许等待的最大时间,否则会发送错误到客户端。
#request.timeout.ms= # 控制 KafkaProducer.send() 和 KafkaProducer.partitionsFor() 将阻塞多长时间。
#max.block.ms= #当消息到达的速度比发送速度快,会出现生产者组将发送的消息组合成单个批量请求的现象,或者客户端希望减少请求数量,
#设置此参数,生产者将等待一个延迟,以便和其他的消息组合成一个批次发出,减少发送的请求数。
#linger.ms= #请求的最大字节数。
#max.request.size= #生产者批处理消息的字节数,以减少请求次数,这将改善client与server之间的性能。
#batch.size= # 生产者可以用来缓存消息的缓冲区大小。
#buffer.memory=

在网上看到生产端有个 acks 参数,但这个配置文件没有,先在 Kafka 的官网手册了解了一下,留待后面深入了解。

acks 这个参数用来指定分区中必须要有多少个副本收到这条消息,之后生产者才会认为这条消息是成功写入的。acks 参数有 3 个值,为 1、0、-1:
  • acks = 1,默认值:
    生产者发送消息之后,只要分区的 leader 副本成功写入消息,就会收到来自服务端的成功响应。
    如果消息因为leader 副本崩溃等原因无法写入 leader 副本,生产者就会收到一个错误的响应,为了避免消息丢失,生产者可以选择重发消息。
    为了保证消息不丢失,至少要设置为1,也就是至少保证 leader 将消息保存成功。
  • acks = 0:
    生产者发送消息之后不需要等待任何服务端的响应。
    如果在消息从发送到写入 Kafka 的过程中出现某些异常,导致 Kafka 并没有收到这条消息,生产者也无从得知,消息也就丢失了。
    在其他配置环境相同的情况下,acks 设置为 0 可以达到最大吞吐量。
  • acks = -1:
    生产者在消息发送之后,需要等待 ISR 中的所有副本都成功写入消息之后才能够收到来自服务端的成功响应,也就是不仅是主的分区将消息保存成功了,而且其所有的分区的副本数也都同步好了,才会被认为发动成功。
    在其他配置环境相同的情况下,acks 设置为 -1 可以达到最强的可靠性。但这并不意味着消息就一定可靠,因为 ISR 中可能只有 leader 副本,这样就退化成了 acks=1 的情况。 
 
更多配置可以参见 Producer 配置
 
二、消费者配置
consumer.properties  
#用于建立初始连接到kafka集群的"主机/端口对"配置列表。
bootstrap.servers=localhost:
#消费者所在消费组的唯一标识
group.id=test-consumer-group
## What to do when there is no initial offset in Kafka or if the current
# offset does not exist any more on the server: latest, earliest, none
#当Kafka没有初始偏移量或服务器不再有当前的偏移量怎么办?
#latest:当各分区下有已提交的offset时,从提交的offset开始消费;无提交的offset时,消费新产生的该分区下的数据
#earliest:当各分区下有已提交的offset时,从提交的offset开始消费;无提交的offset时,从头开始消费
#none:topic各分区都存在已提交的offset时,从offset后开始消费;只要有一个分区不存在已提交的offset,则抛出异常
auto.offset.reset=

该配置文件中的参数不多,更多配置可以参见 Consumer 配置

Kafka学习笔记3--Kafka的生产者和消费者配置的更多相关文章

  1. Kafka学习笔记之Kafka三款监控工具

    0x00 概述 在之前的博客中,介绍了Kafka Web Console这 个监控工具,在生产环境中使用,运行一段时间后,发现该工具会和Kafka生产者.消费者.ZooKeeper建立大量连接,从而导 ...

  2. Kafka学习笔记1——Kafka的安装和启动

    一.准备工作 1. 安装JDK 可以用命令 java -version 查看版本

  3. 【kafka学习笔记】kafka的基本概念

    在了解了背景知识后,我们来整体看一下kafka的基本概念,这里不做深入讲解,只是初步了解一下. kafka的消息架构 注意这里不是设计的架构,只是为了方便理解,脑补的三层架构.从代码的实现来看,kaf ...

  4. Kafka学习笔记之Kafka性能测试方法及Benchmark报告

    0x00 概述 本文主要介绍了如何利用Kafka自带的性能测试脚本及Kafka Manager测试Kafka的性能,以及如何使用Kafka Manager监控Kafka的工作状态,最后给出了Kafka ...

  5. Kafka学习笔记之Kafka Consumer设计解析

    0x00 摘要 本文主要介绍了Kafka High Level Consumer,Consumer Group,Consumer Rebalance,Low Level Consumer实现的语义,以 ...

  6. Kafka学习笔记之Kafka背景及架构介绍

    0x00 概述 本文介绍了Kafka的创建背景,设计目标,使用消息系统的优势以及目前流行的消息系统对比.并介绍了Kafka的架构,Producer消息路由,Consumer Group以及由其实现的不 ...

  7. RabbitMQ学习笔记(三、生产者与消费者)

    目录: 细说交换器 细说队列 发送消息 消费消息 确认与拒绝 细说交换器: 1.方法: public AMQP.Exchange.DeclareOk exchangeDeclare(String ex ...

  8. Kafka学习笔记之Kafka High Availability(下)

    0x00 摘要 本文在上篇文章基础上,更加深入讲解了Kafka的HA机制,主要阐述了HA相关各种场景,如Broker failover,Controller failover,Topic创建/删除,B ...

  9. Kafka学习笔记之Kafka High Availability(上)

    0x00 摘要 Kafka在0.8以前的版本中,并不提供High Availablity机制,一旦一个或多个Broker宕机,则宕机期间其上所有Partition都无法继续提供服务.若该Broker永 ...

  10. Kafka学习笔记之Kafka自身操作日志的清理方法(非Topic数据)

    0x00 概述 本文主要讲Kafka自身操作日志的清理方法(非Topic数据),Topic数据自己有对应的删除策略,请看这里. Kafka长时间运行过程中,在kafka/logs目录下产生了大量的ka ...

随机推荐

  1. A dependency may only have one source

    在使用Flutter的时候添加依赖报错了 Error on line 21, column 5 of pubspec.yaml: A dependency may only have one sour ...

  2. Oracle使用命令行登录提示ERROR: ORA-01017: invalid username/password; logon denied

    刚在Windows上面安装好Oracle 10g,刚开始使用PLSQLDevelop软件登录提示  not logged on ,然后使用命令行登录提示 ERROR: ORA-01017: inval ...

  3. nginx反向代理和负载均衡的基本配置

    一.反向代理的基本配置 在原本默认的nginx上修改server配置 server { listen 2222;#监听请求端口 server_name 192.168.100.3;#监听请求地址,ng ...

  4. odoo10学习笔记八:qweb引擎

    转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/11189307.html 一:简介 QWeb是一个基于xml的模板引擎,用于生成HTML片段和页面,模板指令是 ...

  5. Win10更新后wireshark无法获取网络接口

    一不小心win10自动更新了,打开wireshark发现它无法发现本地的网络接口. 其实解决的办法很简单,就是卸载npcap,安装Win10Pcap即可解决.

  6. 算法学习day01 栈和队列

    1,设计一个算法利用顺序栈的基本运算判断一个字符串是否是回文 解题思路:      由于回文是从前到后和从后到前读都是一样的,所以只要将待判断的字符串颠倒 然后与原字符串相比较,就可以决定是否是回文了 ...

  7. 2019CCPC 秦皇岛 E.Escape

    传送门 题意: 给出一个\(n*m\)的迷宫,有\(a\)个入口,\(b\)个出口. 现在有\(a\)个机器人都从入口出发,一开始方向默认为下,你可以选在在一些格子上面放置一个转向器,转向器有四种: ...

  8. 201871010117-石欣钰《面向对象程序设计(JAVA)》第十四周学习总结

    项目 内容 这个作业属于哪个课程 <https://home.cnblogs.com/u/nwnu-daizh/> 这个作业的要求在哪里 <https://www.cnblogs.c ...

  9. python json解析字符串出错该如何排查问题

    每天写一点,总有一天我这条咸鱼能变得更咸 python中对于字符串转json格式有专门的json库可以操作 #!/usr/bin/env python # -*- coding: utf-8 -*- ...

  10. Comet OJ 计算机(computer)

    Comet OJ 计算机(computer) 题目传送门 题目描述 小 X 有一台奇怪的计算机. 这台计算机首先会读入一个正整数 nn,然后生成一个包含 nn 个数的序列 aa. 一开始 a_i(1 ...