从头了解Kafka

一份Kafka的简明教程

Posted by Boreas Ma on May 20, 2021

Apache Kafka is a framework implementation of a software bus using stream-processing. It is an open-source software platform developed by the Apache Software Foundation written in Scala and Java. The project aims to provide a unified, high-throughput, low-latency platform for handling real-time data feeds. – WikiPedia Apache Kafka

Kafka是Apache软件基金会发布的一个开源流处理平台,今天的内容是一个Kafka的简明教程。

0x0 Kafka使用的一些基本概念

Kafka使用了一些基本的的概念来作为运行的一个抽象:events以及topics。根据Kafka文档中的解释,events就如同日常生活中的支付的事务、手机地址信息的更新,这样的信息集合。events本组织并储存在topics中,topics就如同文件系统中的文件夹,而events就像是文件夹中的文件。

0x1 获取Kafka

使用Kafka之前首先要获取Kafka的release包。这是Kafka官方的下载链接,点击链接后就会进入Kafka的的下载地址:经典的Kafka下载页面这个页面也提供了使用PGP签名技术验证文件完整性的方法,对于普通用户来说,这一步是可选的,所以不再赘述。
下载软件包,然后解压之,就可以得到一个可运行的Kafka环境:

1
$ tar -xzf kafka_2.13-2.8.0.tgz

切换到Kafka的目录,开始准备接下来的使用:

1
$ cd kafka_2.13-2.8.0

0x2 运行Kafka环境

注意:运行Kafka环境之前需要确保本地已经安装了Java 8+

运行以下指令来启用与Kafka运行相关的服务:

1
$ bin/zookeeper-server-start.sh config/zookeeper.properties

由于Kafka是一个运行在Zookeeper上的分布式流处理平台,因此需要运行Zookeeper服务来是Kafka正常运转。 运行这条命令后,Zookeeper服务开始运行: Zookeeper开始运行
接下来打开一个新的终端来开启Kafka的服务:

1
bin/kafka-server-start.sh config/server.properties

运行后的结果如下: Kafka开始运行 一个基本的Kafka环境正在运行中,下面让我们尝试一下具体的使用

0x3 创建Topic来存储你的事件

Kafka使用topic来存储events,打开新的终端,运行如下指令来创建一个名称为quickstart-events的topic

1
$ bin/kafka-topics.sh --create --topic quickstart-events --bootstrap-server localhost:9092

其中,--create --topic参数的作用是创建一个制定名称的topic,--bootstrap-server参数的作用是直接连接到给定的broker。 在Kafka运行的图中我们可以看到,broker的运行地址是localhost:9092,其中9092也正是Kafka运行的端口号,这是一个本地环回地址,因此我们在--bootstrap-server的后面填上Kafka的broker的运行地址。
目前版本的Kafka支持不添加旧版的--zookeeper参数就可运行系统,本教程选择采用新版本Kafka的使用方法,也就是不添加--zookeeper参数。

运行该指令之后的结果如图: 创建topic 可以看到,Kafka会提示创建了quickstart-events这一topic。