Kafka(八)----Kafka Tool 2.0.7(最新)版本超详细使用指北_kafka tool2.0.7-程序员宅基地

技术标签: kafka tool  kafka  Kafka  大数据开发  大数据  

Kafka Tool 2.0.7版本使用指北

本篇博客要点如下:

Kafka Tool 2.0.7下载安装

Kafka Tool 2.0.7参数优化及连接Kafka集群

Kafka Tool 2.0.7操作指北

案例: 使用Kafka Tool排查定位生产问题

一. Kafka Tool 2.0.7下载安装

下载:

Kafka Tool下载链接:

根据操作系统和Kafka版本选择合适的安装包:

注意 : Kafka 0.10及之前版本请选择 Kafka Tool 1.0.3
我的操作系统是windows64位,生产环境的Kafka版本是2.1.1

所以下载下图所示的安装包
在这里插入图片描述安装:

安装过程十分简单,一路next即可(记得更改默认安装路径,保持良好习惯)

安装后目录结构如下图所示,双击kafkatool.exe文件启动Kafka Tool工具
在这里插入图片描述

二. Kafka Tool 2.0.7参数优化及连接Kafka集群

2.1 参数优化(可选项)

正式连接Kafka集群前,需要对工具的JVM参数进行配置(根据实际情况)

编辑kafkatool.vmoptions文件
设置参数

-Xmx4096m # 最大堆内存
-Xms4096m # 最小堆内存

在这里插入图片描述
原因 : 我们生产环境的数据量相对较大,查询Kafka集群数据时需要更大的内存来避免频繁的垃圾回收或者内存溢出
同时,设置最大堆内存和最小堆内存相同,避免垃圾回收完成后JVM重新分配内存

通过两张图片参数修改后工具的差别:

修改前:
在这里插入图片描述
修改后:
在这里插入图片描述
注意:这里也不要修改的过大,不然机器内存不足,会导致工具无法正常使用!

2.2 连接Kafka集群
  1. 双击kafkatool.exe文件启动Kafka Tool工具

  2. File–> Add New Connection 或者右键Clusters–> Add New Connection创建新的连接,如下图所示:
    在这里插入图片描述在这里插入图片描述

  3. 配置连接信息,如下图所示

    首先配置Properties
    在这里插入图片描述接下来配置Advanced
    在这里插入图片描述配置成功后,点击add

  4. 连接集群

    选择刚刚添加的连接,点击界面右下方的connect按钮
    在这里插入图片描述连接框变为绿色,证明连接成功!
    在这里插入图片描述

三. Kafka Tool 2.0.7操作指北

3.1 Kafka Tool 功能简介

以下内容来自官网翻译:

Kafka工具是用于管理和使用Apache Kafka集群的GUI应用程序。
它提供了一种直观的UI,可让用户快速查看Kafka集群中的对象以及集群主题中存储的消息。
它包含面向开发人员和管理员的功能。
主要功能如下:
1. 快速查看所有的Kafka集群,包括:  brokers,topics,consumers
2. 查看分区中的内容并添加新消息
3. 查看消费者的偏移量
4. 以漂亮的格式展示Json和XML消息
5. 添加删除主题,以及其它管理功能
6. 将单个消息从集群分区保存到本地
7. 编写自己的插件,可以自定义数据格式
8. Kafka工具可以在包括Windows,Linux和Mac OS等系统上运行
3.2 使用Kafka Tool查看Broker信息

如下图所示,点开我们之前获取到的连接
可以查看集群broker的ID,Host和Port信息
在这里插入图片描述

3.3 使用Kafka Tool查看和管理Topic

查看topic整体信息

任意选择一个topic

Properties里,你能够获取到该topic的总偏移量,key和消息的类型
如下图所示:
在这里插入图片描述通过Data查看topic的数据(会将二进制的消息转换成我们能看懂的格式),可以选择查询最早或者最新偏移量的数据,并指定每个分区显示的条数
在这里插入图片描述
在这里,我们还可以看到每条消息的详细信息,如下图:
我们可以看到,每条消息所在分区,对应偏移量,消息大小,消息的时间戳,以及消息的原始值(我这里是二进制的)
在这里插入图片描述时间戳信息:
在这里插入图片描述
原始消息内容:
在这里插入图片描述
这里我们可以点击下图所示的按钮,将集群的消息下载到本地
在这里插入图片描述
设置好下载路径和文件名,点击保存按钮,即可!
下载好的内容如下图所示:
可以看到,在集群中存储为二进制的数据,下载到本地是很好的json格式
这个功能还是很实用的!
在这里插入图片描述

查看topic具体分区信息

我们以上文中列举的topic的分区5为例
Properties包括: 分区的id,分区的leader,起始偏移量,截止偏移量,分区大小等信息
在这里插入图片描述
Replicas包括每个副本集的broker信息,以及每个副本是否同步,如下图所示:

在这里插入图片描述Data包含如下内容查看消息,添加消息等,具体细节如下图:
和Topic下的Data有所区别,不同的地方在下图中用红线标出
在这里插入图片描述
为分区增加消息

1. 点击Data下面的 + 按钮
2. 弹出框选择Add Multiple Message
3. 设置消息配置选项(每行内容,key.message分隔符,以及是否使用16进制)
4. Data文本框按格式输入要添加消息
5. 点击add按钮添加消息

具体操作如下图所示:
在这里插入图片描述

添加和删除topic

点击界面左侧的Topics,在界面右侧的弹出框中包括刷新,打印,创建topic,删除topic
具体操作如下图:
在这里插入图片描述
添加topic

1. 点击Topics里的 + 按钮
2. 设置topic信息(名字,分区数,副本数)
3. 点击add按钮
4. topic创建成功

在这里插入图片描述

删除topic

1. 选中要删除的topic
2. 点击×按钮
3. 弹出来的提示框中选择是
4. topic删除

删除操作一定要慎重!请仔细确认!!!
删除操作一定要慎重!请仔细确认!!!
删除操作一定要慎重!请仔细确认!!!

具体操作如下图所示:
在这里插入图片描述

3.4 使用Kafka Tool查看和管理Consumer

界面左侧点击Consumers可以看到该集群的所有消费者组
在下面列出来的消费者组中,随便点击一个
右侧会出现包含Properties和Offsets选项的界面

Properties包含如下内容:
消费者组(组名)Id,消费者类型,偏移量存储位置
如下图:
在这里插入图片描述Offsets包含如下信息:

它提供了刷新,打印,编辑功能
可以获取到消费者组消费的topic信息,分区偏移量信息,获取消费端的偏移量,积压的偏移量,以及偏移量最后提交时间
具体如下图所示
在这里插入图片描述
看一下它的编辑功能:

1. 选择要编辑的消费者组
2. 点击编辑按钮
3. 选择设置偏移量方式(从起始位置消费,从截止位置消费,或者从指定的偏移量开始消费)
4. 点击update完成设置

在这里插入图片描述
看一下更新之后的效果:
可以看到: 消费端的偏移量和topic的截止消费量基本一致(不等的原因是,topic一直有数据推送)
同时,消费端的数据积压也清空了
在这里插入图片描述在实际生产中,我们可以通过这种方式跳过我们不需要消费的数据,以提高消费端性能,减少资源占用!

四.使用Kafka Tool排查定位生产问题

最后,在介绍一个使用这个工具定位生产问题的案例

生产问题描述

通过监控邮件发现, Kafka消费落地后的数据,在(数据条数,数据质量)均与源端(oracle)的数据存在差异
而我们对于数据准确性的要求很高

问题排查

查询程序日志,发现如下报错:

在这里插入图片描述即: Kafka集群在几分钟的时间里不可用
与相关同事确认,在这段时间Kafka集群重启
但他们声称,重启是无感知的,不会造成数据丢失,可能是消费端的参数设计有问题,或者说程序不够健壮???

来不及扯皮,用补数程序把数据补好先~

用Kafka-tool工具,查询我用的topic某个分区的数据(窥一豹而见全身)

使用From Specific Offset功能,使用一点子智慧,调整时间戳到集群重启的时间点
发现了如下内容:在接近7分钟的时间里,topic没有任何数据新增(正常情况下,每秒都会有几条到几十条不等的数据)

在这里插入图片描述
接下来,根据我的补数程序打印出来的主键信息去Mongo数据库核查,
发现数据全部落在这个时间点
(因为推送端是同时写入这个库和Kafka的)
这个库有对应时间的数据,Kafka集群却没有,可以确定Kafka集群这段时间的数据全部缺失
在这里插入图片描述
至此,问题排查清楚

确诊

原因是相关同事在集群重启之前,没有衡量好影响.
同时也没有告知使用方
因此,负责推送的同事没有在集群重启前,停掉推送端,导致这段时间数据丢失
(推送端出于性能和数据一致性的综合考虑,推送失败时会重试几次,但不会一直阻塞)

------ 感谢这个工具, 没有让可怜的我背黑锅~

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_40861707/article/details/105975886

智能推荐

c# 调用c++ lib静态库_c#调用lib-程序员宅基地

文章浏览阅读2w次,点赞7次,收藏51次。四个步骤1.创建C++ Win32项目动态库dll 2.在Win32项目动态库中添加 外部依赖项 lib头文件和lib库3.导出C接口4.c#调用c++动态库开始你的表演...①创建一个空白的解决方案,在解决方案中添加 Visual C++ , Win32 项目空白解决方案的创建:添加Visual C++ , Win32 项目这......_c#调用lib

deepin/ubuntu安装苹方字体-程序员宅基地

文章浏览阅读4.6k次。苹方字体是苹果系统上的黑体,挺好看的。注重颜值的网站都会使用,例如知乎:font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, W..._ubuntu pingfang

html表单常见操作汇总_html表单的处理程序有那些-程序员宅基地

文章浏览阅读159次。表单表单概述表单标签表单域按钮控件demo表单标签表单标签基本语法结构<form action="处理数据程序的url地址“ method=”get|post“ name="表单名称”></form><!--action,当提交表单时,向何处发送表单中的数据,地址可以是相对地址也可以是绝对地址--><!--method将表单中的数据传送给服务器处理,get方式直接显示在url地址中,数据可以被缓存,且长度有限制;而post方式数据隐藏传输,_html表单的处理程序有那些

PHP设置谷歌验证器(Google Authenticator)实现操作二步验证_php otp 验证器-程序员宅基地

文章浏览阅读1.2k次。使用说明:开启Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需要输入额外由手机客户端生成的一次性密码。实现Google Authenticator功能需要服务器端和客户端的支持。服务器端负责密钥的生成、验证一次性密码是否正确。客户端记录密钥后生成一次性密码。下载谷歌验证类库文件放到项目合适位置(我这边放在项目Vender下面)https://github.com/PHPGangsta/GoogleAuthenticatorPHP代码示例://引入谷_php otp 验证器

【Python】matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距-程序员宅基地

文章浏览阅读4.3k次,点赞5次,收藏11次。matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距

docker — 容器存储_docker 保存容器-程序员宅基地

文章浏览阅读2.2k次。①Storage driver 处理各镜像层及容器层的处理细节,实现了多层数据的堆叠,为用户 提供了多层数据合并后的统一视图②所有 Storage driver 都使用可堆叠图像层和写时复制(CoW)策略③docker info 命令可查看当系统上的 storage driver主要用于测试目的,不建议用于生成环境。_docker 保存容器

随便推点

网络拓扑结构_网络拓扑csdn-程序员宅基地

文章浏览阅读834次,点赞27次,收藏13次。网络拓扑结构是指计算机网络中各组件(如计算机、服务器、打印机、路由器、交换机等设备)及其连接线路在物理布局或逻辑构型上的排列形式。这种布局不仅描述了设备间的实际物理连接方式,也决定了数据在网络中流动的路径和方式。不同的网络拓扑结构影响着网络的性能、可靠性、可扩展性及管理维护的难易程度。_网络拓扑csdn

JS重写Date函数,兼容IOS系统_date.prototype 将所有 ios-程序员宅基地

文章浏览阅读1.8k次,点赞5次,收藏8次。IOS系统Date的坑要创建一个指定时间的new Date对象时,通常的做法是:new Date("2020-09-21 11:11:00")这行代码在 PC 端和安卓端都是正常的,而在 iOS 端则会提示 Invalid Date 无效日期。在IOS年月日中间的横岗许换成斜杠,也就是new Date("2020/09/21 11:11:00")通常为了兼容IOS的这个坑,需要做一些额外的特殊处理,笔者在开发的时候经常会忘了兼容IOS系统。所以就想试着重写Date函数,一劳永逸,避免每次ne_date.prototype 将所有 ios

如何将EXCEL表导入plsql数据库中-程序员宅基地

文章浏览阅读5.3k次。方法一:用PLSQL Developer工具。 1 在PLSQL Developer的sql window里输入select * from test for update; 2 按F8执行 3 打开锁, 再按一下加号. 鼠标点到第一列的列头,使全列成选中状态,然后粘贴,最后commit提交即可。(前提..._excel导入pl/sql

Git常用命令速查手册-程序员宅基地

文章浏览阅读83次。Git常用命令速查手册1、初始化仓库git init2、将文件添加到仓库git add 文件名 # 将工作区的某个文件添加到暂存区 git add -u # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,不处理untracked的文件git add -A # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,包括untracked的文件...

分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120-程序员宅基地

文章浏览阅读202次。分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120

【C++缺省函数】 空类默认产生的6个类成员函数_空类默认产生哪些类成员函数-程序员宅基地

文章浏览阅读1.8k次。版权声明:转载请注明出处 http://blog.csdn.net/irean_lau。目录(?)[+]1、缺省构造函数。2、缺省拷贝构造函数。3、 缺省析构函数。4、缺省赋值运算符。5、缺省取址运算符。6、 缺省取址运算符 const。[cpp] view plain copy_空类默认产生哪些类成员函数

推荐文章

热门文章

相关标签