kafka学习(一)——基本的安装与使用

前言

从本篇博客开始总结kafka的相关学习点,也会参考网上相关视频教程进行总结,关于kafka是什么这里不做过多的叙述,官网上都会有,只是需要知道的是kafka不仅仅是一个消息队列,其实他的功能比单纯的消息队列中间件要强大的多。

kafka是一个分布式流处理平台,不只是消息队列,kafka是apache的一个顶级项目。

LinkedIn基于scalar编写的一个流处理平台,大数据平台对数据处理的时效性提出了更高的要求——最后开发了一个基于zookeeper的分布式消息系统——kafka。

kafka具有高吞吐量,高性能,实时以及高可用等特点,这些特点是消息中间件暂时不具备的。

最后,附上kafka的官网地址——kafka官网

基本的安装

个人建议在linux的环境下进行安装和学习kafka

由于kafka是基于scalar编写的,而scalar需要基于JVM的环境编译和运行,因此在安装kafka之前,需要准备好JDK(最好1.8以上)的环境。同时kafka本身是基于zookeeper的一个分布式消息系统,因此还需要安装好zookeeper。关于linux环境下JDK和zookeeper的安装,这里不做赘述,简单百度就行。这里只介绍kafka的安装(额,其实kafka的安装和zookeeper的安装也差不多)

下载

直接进入官网的download页面——kafka官网下载页面。该页面建议了最合适的kafka镜像下载地址,直接在准备好的linux环境中,在指定目录下执行wget即可

wget https://mirrors.bfsu.edu.cn/apache/kafka/2.7.0/kafka_2.13-2.7.0.tgz

然后解压,进入到指定目录

tar -xzf kafka_2.13-2.7.0.tgz
cd kafka_2.13-2.7.0

进入之后,会看到如下目录

drwxr-xr-x. 3 root root  4096 12月 16 22:03 bin
drwxr-xr-x. 2 root root  4096 12月 16 22:03 config
drwxr-xr-x. 2 root root  8192 2月  20 20:06 libs
-rw-r--r--. 1 root root 29975 12月 16 21:58 LICENSE
-rw-r--r--. 1 root root   337 12月 16 21:58 NOTICE
drwxr-xr-x. 2 root root    44 12月 16 22:03 site-docs

修改相关配置

进入到kafka中的config文件夹

其中有如下配置文件

-rw-r--r--. 1 root root  906 12月 16 21:58 connect-console-sink.properties
-rw-r--r--. 1 root root  909 12月 16 21:58 connect-console-source.properties
-rw-r--r--. 1 root root 5321 12月 16 21:58 connect-distributed.properties
-rw-r--r--. 1 root root  883 12月 16 21:58 connect-file-sink.properties
-rw-r--r--. 1 root root  881 12月 16 21:58 connect-file-source.properties
-rw-r--r--. 1 root root 2247 12月 16 21:58 connect-log4j.properties
-rw-r--r--. 1 root root 2540 12月 16 21:58 connect-mirror-maker.properties
-rw-r--r--. 1 root root 2262 12月 16 21:58 connect-standalone.properties
-rw-r--r--. 1 root root 1221 12月 16 21:58 consumer.properties
-rw-r--r--. 1 root root 4674 12月 16 21:58 log4j.properties
-rw-r--r--. 1 root root 1925 12月 16 21:58 producer.properties
-rw-r--r--. 1 root root 6849 12月 16 21:58 server.properties
-rw-r--r--. 1 root root 1032 12月 16 21:58 tools-log4j.properties
-rw-r--r--. 1 root root 1169 12月 16 21:58 trogdor.conf
-rw-r--r--. 1 root root 1205 12月 16 21:58 zookeeper.properties

我们主要需要修改的是server.properties文件

需要修改的配置项有如下几个(其中的ipaddress,可以就是设置为对应的IP地址,如果是本机学习也不建议设置为localhost)

# 监听的地址(现在暂时不用知道这个是做什么的,ipaddress配置成本机ip即可)
listeners = PLAINTEXT://ipaddress:9092
advertised.listeners = PLAINTEXT://ipaddress:9092
##日志文件的目录地址
log.dirs = /kafka/logs/
## zookeeper的配置,ipaddress配置成zookeeper服务器所在的地址即可,如果有多个,逗号隔开即可。
zookeeper.connect=ipaddress:2181
zookeeper.connecion.timeout.ms=6000

启动

直接执行如下命令,后台启动kafka

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

看到如下一行,可以判断启动成功

INFO [KafkaServer id=0] started (kafka.server.KafkaServer)

停止

进入到kafka的bin目录下执行停止脚本即可

sh kafka-server-stop.sh

看到如下日志说明kafka已经停止

[2021-02-27 17:38:55,546] INFO [KafkaServer id=0] shut down completed (kafka.server.KafkaServer)

简单的使用

基本的使用,只是简单通过kafka发送和接受一个消息的简单实例。在总结这个实例之前,先熟悉几个概念

Topic:一个虚拟的概念,由1到多个Partitions组成。先简单理解——用于暂存消息的地方,有点类似于RabbitMQ中的exchange的概念

Partitions:实际消息存储单位,有点类似于RabbitMQ中的queue的概念。

Producer:消息的生产者,将消息推送到topic中

Consumer:消息的消费者,将会去topic中取消息

创建topic

进入到kafka的bin目录,执行如下脚本命令

sh kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic topic_name

上面的topic_name就是创建的topic名称。

查看已经创建的topic

同样在bin目录下,执行如下命令即可。

sh kafka-topics.sh --list --zookeeper localhost:2181
[root@localhost bin]# sh kafka-topics.sh --list --zookeeper localhost:2181
helloworld_topic

我们这里创建了一个名为helloworld_topic的topic

发送消息

在bin目录下执行如下命令

sh kafka-console-producer.sh --broker-list 192.168.0.110:9092 --topic helloworld_topic

出现左箭头的时候,表示连接到kafka的对应topic,然后随便输入几个消息即可。

接受消息

同样在bin目录下执行如下命令脚本

sh kafka-console-consumer.sh --bootstrap-server 192.168.0.110:9092 --topic helloworld_topic --from-beginning

可以获取指定topic中的消息

在这里插入图片描述

总结

kafka简单的安装使用入门总结。

猜你喜欢

转载自blog.csdn.net/liman65727/article/details/114183608