1. 什么是Kafka?
Kafka是一个发布 – 订阅消息传递系统,它允许你在进程,应用程序和服务器之间发送消息。Kafka是一个可以定义并处理主题(topic)的软件。应用程序可以连接到Kafka上并将消息发送到主题,消息可以包含任何类型的信息,例如来自我们个人博客上的任何一个事件,或者是将触发任何其他事件的非常简单的文本消息。
2. Kafka工具的类型
基本上,Kafka中的工具实现打包在“org.apache.kafka.tools.*包里。这些Kafka工具分为两种类型:
-
系统工具(System Tool)
-
复制工具(Replication Tool)
pic
a. Kafka 系统工具
通过运行run-class脚本,我们可以从命令行运行Kafka中的系统工具,命令如下:
bin/kafka-run-class.sh package.class --options
系统工具包括以下几种:
1). Kafka迁移工具(Migration Tool)
将Kafka代理从一个版本迁移到另一个版本。
2). 镜像制造工具(Mirror Maker)
创造一个Kafka集群的镜像。
3). 消费者偏移量检查工具(Consumer Offset Checker)
消费者偏移量检查工具显示Kafka主题,偏移量,日志大小,消费者组,分区,指定主题的所有者和消费者组的所有者。
b. Kafka复制工具
复制工具可以使Kafka具有更强的耐用性和更高的可用性。复制工具包括:
1). 主题创建工具(Create Topic Tool)
我们使用主题创建工具根据设定的复制因子和分区数量来创建主题。
2). 主题列表工具(List Topic Tool)
它会列出给定的主题列表的详细信息。但是,如果没有把主题名称作为参数传给脚本,该工具会查询Zookeeper以获取所有主题并列出这些主题的信息,信息包括各种字段,如主题名称,分区,领导者,副本,isr。
3). 增加分区工具(Add Partition Tool)
一般情况下,创建主题的时候就确定了这个主题的分区数量,但是如果主题的信息太多导致所占存储太大,我们可以 为这个主题增加分区。那么我们就可以使用这个工具为指定的主题增加分区,另外,可以在新增加的分区上手动做副本分配。