kakfka是一项非常强大的技术。它可以提供令人难以置信的吞吐量,并且已经成为后端服务之间通信的标准方式。

唯一真正的负面影响是,深入了解kakfa的底层可能会有些痛苦。当然,Kafka附带了一些脚本来管理和查看主题的细节,但有时它们感觉有点笨拙……它们也有能力创造和摧毁整个kafka,这很可怕,使用起来也很危险。

这时使用kafkacat来调试就能规避这些问题。

使用kafkacat获取主题列表

与Kafka一起工作的第一个障碍就是一开始就知道哪些主题是可用的。这对于kafkacat来说是超级简单的。

kafkacat -L -b kafka

就这些。参数是-L表示列表模式,-b表示kafka的broker。您将获得集群中每个主题的列表。它看起来是这样的:

使用kafkacat发布消息

这绝对是我在使用kafkacat时最常见的任务。我写了一个消费者消费数据,但数据并不存在。我依赖于另一个应用程序来提供我的数据,但我不想运行那个应用程序只是为了测试我自己的。别担心,kafakcat会有帮助的。在你选择的终端机上运行以下程序:

kafkacat -P -b kafka -t awesome-topic

-P将kafkacat设置为producer模式,-b指向一个名为Kafka的Kafka代理,-t指向一个主题。现在您正在发布消息!不要被你发出的命令下面的光标所迷惑…只要在终端上输入(或粘贴)你的信息,然后回车。清洗和重复的方法。完成后,只需按ctrl +C并将其作为消息发送。你的终端应该是这样的:

使用kafkacat消费消息

假设你有一个应用程序,它发布了一条消息,但没有使用相同的消息。你要确保所有东西都准确地落在你期望的地方。您需要使用一个主题,以确保一切正常。

幸运的是,使用kafkacat处理消息非常简单。在你的终端输入以下命令:

kafkacat -C -b kafka -t awesome-topic

从字面上看,基本发布者和基本消费者之间的惟一区别是-C选项。这告诉kafkacat使用消息。显然,作为一个消费者,你不能提供任何输入,但你会看到一大堆有趣的输出。在本例中,您将看到我们在第一个示例中发布的消息。

默认情况下,kafkacat会告诉你它什么时候到达一个分区的末尾。我已经将Kafka配置为使用10个分区(0-9个)创建主题,因此我们可以在消息中看到很多额外的信息。如果我们不关心分区/偏移量信息,我们可以使用-q选项只显示消息。

在主题或集群之间传输消息

假设您想要将一些消息从一个主题移动到另一个主题,而不需要在consumer和publisher窗口之间复制/粘贴它们。用kafkacat做是一件很简单的事。

kafkacat -C -b kafka -t awesome-topic -e | kafkacat -P -b kafka -t awesome-topic2

有两个由|分隔的命令。我们的第一个命令是一个基本的kafkacat使用者,它针对的是awesome-topic主题。-e标志对我们来说是新的,但它的意思是“当你讲到主题的结尾时就结束了”。第二个命令只从stdin读取并将消息发布到awesome-topic2。

我们可以从文件中读取:

kafkacat -C -b kafka -t awesome-topic -e > awesome-messages.txt
cat awesome-messages.txt | kafkacat -P -b kafka -t awesome-topic2

你可以用kafkacat做很多事情。你可以指定一个消息键用于分区策略…-J标志非常棒(只要把它放在你想要的任何东西的末端,然后开始把东西输送到jq)…你可以加入或创建消费者组…

可能性几乎是无限的。kafkacat是一个非常有用的工具,所以要充分利用它!

5.0
01
2020年5月关系型数据库DB-Engines排行榜
supervisor如何启动一个应用的多个实例
嘻嘻

嘻嘻IT: 笔者是一个工作七八年的程序猿老鸟,从事涉及的技术栈主要包括PHP、Linux、Devops等,喜欢研究新技术,尝试新技术,提升技术自动化和开发效率,致力于write less,do more! 技术每年都会层出不穷,领域划分的越来越细,不可能学习所有的东西,保持对技术的好奇心,理解技术中核心思想,做一个有深度,有思想的开发!

Recent Posts

全球货币导航网页上线了!

o在全球化的今天,货币兑换和国…

2小时 ago

bash字符串拼接

在编程中,字符串的拼接是一个非…

2小时 ago

Bash Case详解

Bash case 语句通常用…

2小时 ago

Bash for详解

for循环是编程语言中的基础概…

3小时 ago

liunux中你必须知道alias命令?

在Linux操作系统中,无论你…

23小时 ago

zshrc文件详解

Zsh 是一个强大的 shel…

1天 ago