Kafka 简要使用说明

Kafka 简要使用说明

概念: Partition, consumer group, rebalance

在使用中, 为了保证消费 Kafka 的数据和生产数据的次序严格一致, 一个 Topic 只设置了一个 Partition. 我没有碰到不关心时序的场景, 所有的 Topic 都只有一个 partition.

一个 Topic 可以被多个 consumer group 重复消费, 这些 consumer group 之间是完全隔离的. 一个 consumer group 可以包含一个或多个 consumer, 但消费者个数不应该多于 partition 个数. 考虑到我们的 topic 只有一个 partition, 所以每个consumer group也只能有一个消费者.

rebalance: 如果 partition 数量(供给侧)不变, consumer group下的 consumer 数量不变, Kafaka 是不会做 rebalance 的. 但如果发生如下情形, Kafaka 就要为 consumer 重新分配 partition :

  • partition 数量改变.
  • consumer group 中新增了 consumer.
  • Kafka broker 检测到某个 consumer 已经没有心跳, 相当于 consumer 数量减少

新建 group 如何消费完整的数据?

经常碰到一个场景是, 因为测试或其他需要, 我们想重新消费一个 topic 数据, 操作很简单, 为消费者设定一个新的 consumer group id, 同时设置 auto.offset.reset 为 earliest 即可.
为什么需要将 auto.offset.reset 特意设置为 earliest 呢? 因为, 默认的设置是 latest, 对于一个新的 group id, Kafka 在 ZooKeeper 中找不到它之前的 offset, 所有历史的数据都无法被消费, 只有新的数据才会被消费到; 设置为 earliest 就能从最早的 offset 开始消费, Kafka 默认会清空7天前的数据, 也就是说能消费最近7天的所有数据.

几个重要的属性

参数 含意 Kafka 缺省值 Kettle Kafka consumer推荐值
topic 要消费哪个topic的数据
group.id 消费者端自行设定一个group id
max consumption duration 消费者持续消费Kafka时长 180 000
session.timeout.ms 如果 broker 超过 session.timeout.ms 设定值还没有收到消费者的心跳汇报, 就认为消费者已经不在线, 之后 broker 安排做 consumer 之间的 rebalance 10 000 30 0000
heartbeat.interval.ms 消费者主动向 broker 汇报存活的间隔时长, 取值应该是<= session.timeout.ms的1/3 3 000 3 000
request.timeout.ms 消费者消费数据的请求超时值 30 000 400 000
auto.offset.reset 消费者如何读取 offset, 有三个取值 earliest, latest, none latest 按需
enable.auto.commit 如果需要 Kafaka 自动更新消费的 offset(周期性更新), 设置为 true, 如果由消费者自行更新的话, 可以设置为 false. 推荐使用自动提交, 可以结合 auto.commit.interval.ms 不断调优; 如果是手动提交的话, 通常仅仅在批次消费完毕后才提交, 吞吐量是很高, 但有可能在commit 之前系统崩溃, 就会造成大量数据的重复消费. true
auto.commit.interval.ms enable.auto.commit 开启情况下, 用来控制多久commit offset值, 间隔越大吞吐量越大, 但如果 commit 失败后重复消费的量也越大. 5 000

Kafka 监控的 GUI 工具(基于 Eclipse)

网址 http://www.kafkatool.com/features.html, 个人使用免费

时间: 2024-10-05 04:56:02

Kafka 简要使用说明的相关文章

Kafka简要介绍

介绍: Kafka是一个高吞吐量的分布是消息系统 ,原本开发自LinkedIn,用作LinkedIn的活动流(activity stream)和运营数据处理管道(pipeline)的基础.现在它已为多家不同类型的公司作为多种类型的数据管道(data pipeline)和消息系统使用. 现在Kafak作为apache的项目,被apache托管. 企业应用的背景: 企业集成的基本特点是把企业中现存的本不相干的各种应用进行集成.例如:一个企业可能想把财务系统和仓管系统进行集成,减少部门间结算和流通的成

tftp 简要使用说明

yum 安装:tftp    tftp-server (2)启动tftp CentOS 6 service xinetd restart chkconfig tftp on CentOS 7 systemctl start tftp.socket systemctl enable tftp.socket (3)服务器默认的站点目录 /var/lib/tftpboot (4)tftp服务端监听于udp的69端口 (5)启动tftp服务 systemctl start tftp.socket (6)

JProfiler 简要使用说明

1.简介 JProfiler是一个ALL-IN-ONE的JAVA剖析工具,可以方便地监控Java程序的CPU.内存使用状况,能够检查垃圾回收.分析性能瓶颈. 本说明文档基于JProfiler 9.2编写. 2.安装 安装包:JProfiler_windows-x64_9_2.exe (JProfiler 9注册码.txt) 如果要监控的远端服务器操作系统不同,在Select Component这步,可以选择安装不同系统的Native libraries for profiling agent.

pgbackrest 简要使用说明

测试环境: CentOS Linux release 7.4.1708 (Core) X64 PostgreSQL: 10.1(Source) pgbackrest: pgbackrest-release-1.27.tar.gz 1.Test-Simple-1.302120.tar.gz # perl Makefile.PL # make # make test ...... ...... All tests successful. Files=220, Tests=2514, 29 wallc

pyinstaller简要使用说明

pyinstaller可以把.py脚本保存成.exe可执行文件. 安装时使用pip install pyinstaller即可 基本语法:pyinstaller options myscript.py常用的可选参数如下:--onefile 将结果打包成一个可执行文件--onedir 将所有结果打包到一个文件夹中,该文件夹包括一个可执行文件和可执行文件执行时需要的依赖文件(默认)--paths=DIR 设置导入路径--distpath=DIR 设置将打包的结果文件放置的路径--specpath=D

openssl 加密算法 CA 介绍

首先对于tftp服务的简要使用说明 (1)yum安装:tftp.tftp-server (2)启动tftp CentOS 6 service xinetd restart chkconfig tftp on CentOS 7 systemctl start tftp.socket systemctl enable tftp.socket (3)服务器默认的站点目录 /var/lib/tftpboot (4)tftp服务端监听于udp的69端口 (5)启动tftp服务 systemctl star

04 Linux操作系统及常用命令

一.操作系统 shell: GUI: Graphic User Interface 图形用户界面 Windows X-Window: Gnome KDE Xfce CLI:Command Line Interface sh bash csh ksh zsh tcsh 两大雷锋实验室: 贝尔实验室 施乐公司的PARC实验室:以太网,鼠标,图形用户界面 库文件: .dll : dynamic link library,  windows 下的 动态链接库. .so: shared object ,共

使用psftp.exe

使用psftp.exe 点击打开psftp.exe,出现如下图的命令窗口.  输入open [user]@[host],user为用户名,host为sftp服务器的ip,如输入 open aaa@172.18.235.56 回车后出现以下提示  输入n,不需要把key缓存:然后提示输入密码.成功连接后,就会返回命令符. 输入put [FilePath] 就可以把文件传到sftp的文件夹中.如输入 put “D:\temp\temp\sftp架设方案.doc” wk_ad_begin({pid :

Git学习笔记与IntelliJ IDEA整合

一.Git学习笔记(基于Github) 1.安装和配置Git 下载地址: http://git-scm.com/downloads Git简要使用说明: http://rogerdudler.github.io/git-guide/index.zh.html Github官方使用说明: https://help.github.com/articles/set-up-git 默认安装 配置 1)首先你要告诉git你的名字 git config --global user.name " Your N