700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 一.Kafka入门到精通-Kafka快速入门

一.Kafka入门到精通-Kafka快速入门

时间:2021-12-31 13:34:46

相关推荐

一.Kafka入门到精通-Kafka快速入门

前言

在内卷严重的程序员圈子中,原地踏步就是退步,所以不能再躺平啦,赶紧爬起来学习,接下来博主将推出《Kafka入门到精通》系列文章,让你可以在企业中玩起Kafka来得心应手,此乃升职加薪必备呀。

Kafka认识

Kafka 是由Linkedin公司开发的,支持多分区、多副本,基于 Zookeeper 的分布式消息流平台,是一款基于发布订阅模式的开源消息引擎系统。相对于其他的消息组件来说Kafka拥有更好的吞吐量、内置分区、具有复制和容错的功能,这使它成为一个非常理想的大型消息处理应用。使用场景如:网页浏览记录,日志收集,监控数据等等。

Kafka 的标准定位是分布式流式处理平台,早期的定位是以消息引擎的身份出现的,随着 Kafka 的不断演进, Kafka 开发团队日益发现经 Kafka 交由下游数据处理平台做的事情 Kafka 自己也可以做,因此在 Kafka 0.10.0.0 版本正式推出了 Kafka Streams ,即流式处理组件 。自 Kafka 正式成为了 个流式处理框架,而不仅仅是消息引擎了。

如图所示,Kafka的工作流程为

生产者发送消息到Kafka集群消费者从Kafka拉取消息Kafka依赖于Zookeeper处理服务的协调

Kafka快速安装(windows)

官方文档:/31/documentation.html#quickstart

第一步:下载kafka ,/downloads

注意:kafka是使用Scala开发,所以版本号是由 Scala的版本号和Kafka版本号组成的,如:kafka_2.12-3.2.0 , 2.12是scala版本, 3.2.0是kafka版本

下载后解压,目录结构如下

bin :kafka的执行脚本 ,其中包括启动kafka的脚本:kafka-server-start.bat 和 zookeeper-server-start.bat 启动zookeeper的脚本(kafka内置有zookeeper) ,bin/windows 目录中的脚本是针对windows平台。config : 配置文件目录 ,包括server.properties :kafka的配置 ; zookeeper.properties :zookeeper的配置, producer.properties:生产者的配置 ; consumer.properties 消费者的配置等等。libs : 依赖的三方jar包

启动zookeeper

为了方便操作,你可以给kafka配置一下环境变量 。 由于Kafka 使用 ZooKeeper作为服务协调工具, 如果你还没有ZooKeeper服务器,你需要先启动一个ZooKeeper服务器,我们直接使用kafka内置的ZooKeeper 即可,进入到bin\windows 目录,执行如下列命令(windows):

zookeeper-server-start.bat ../../config/zookeeper.properties

如果是在linux启动,执行到bin目录下的启动脚本即可,执行下面命令

zookeeper-server-start.sh ../config/zookeeper.properties

zookeeper.properties是作为zookeeper的配置文件,比如你想修改zookeeper的默认端口通过配置文件修 clientPort=2181项即可 ,如下:

dataDir : 数据存储目录clientPort :端口

启动效果如下

启动Kafka

Zookeeper的端口是2181接下来我们启动 Kafka 务器,进入到bin\windows 目录,执行如下列命令(windows):

kafka-server-start.bat ../../config/server.properties

server.properties作为kafka的配置文件,我们关注下面几个配置,你也可以根据情况进行修改

broker.id =0 : 如果是做个多个kafka主机集群,那么brocker.id不能重复,0 ;1 ;2 增长zookeeper.connect : zookeeper的地址 ,如果有多个zk就用逗号隔开配置多个地址num.partions = 1 : 默认partions 数量默认为1log.dirs :日志目录,不建议放到tmp临时目录,一定要修改,如:log.dirs=d:/kafka-logs

启动效果如下

控制台输出结尾处的“ Kafka Server O], started ,标志 Kafka 服务器启动成功,默认的服务端口是 9092

命令行演示消息的生产和消费

前面我们已经了解过,生产者负责发送消息到 kafka ,kafka负责存储消息,消费者从kafka订阅消费消息,如下图:

kafka是通过topic(主题)来对消息进行分类,也就是说发送者发送消息时需要指定消息发送到哪个topic中,而topic是由多个partition(可以理解为分区)组成。partition数量默认为1,topic必须指明创建。

TOPIC的创建

kafka-topics.bat 脚本

官方文档:/31/documentation.html#quickstart , 请注意不同的kafka版本需要看不同版本的文档哦。

安装目录\bin\windows\kafka-topics.bat :是供针对topic的操作脚本,可对topic进行crud,使用cmd 输入kafka-topics.bat可以查看到kafka-topics.bat的帮助说明

这里我这里贴了一下几个核心的相关参数

创建TOPIC

使用如下命令创建一个名字为 topic-hello 的topic主题

D:\opensource\kafka3.2\bin\windows>kafka-topics.bat --bootstrap-server localhost:9092 --create --topic topic-hello

上面命令会创建一个名字为topic-hello的主题,默认 Partition数量为1,当然可以通过增加--partitions 1参数指定分区数量 ,可以通过--replication-factor 1指定副本数量(后面会说到) 效果如下:

bin\windows\kafka-topics.bat : 是kafka提供针对topic的操作脚本,可对topic进行crud–create : 表示要创建一个topic,–topic :表示要创建topic 名字为 topic-hello–bootstrap-server localhost:9092 : 表示连接到kafka服务

查看TOPIC

使用--list命令查看所有topic

D:\opensource\kafka3.2\bin\windows>kafka-topics.bat --bootstrap-server localhost:9092 --list

效果如下:

修改分区

创建好topic之后,可以使用 kafka-topics 修改更改主题的配置或分区,命令如下:

kafka-topics.bat --bootstrap-server broker_host:port --alter --topic my_topic_name --partitions 40

删除TOPIC

使用--delete命令删除一个TOIC ,语法如下:

kafka-topics.sh --bootstrap-server broker_host:port --delete --topic my_topic_name

生产者发送消息

Kafka 默认提供了脚本工具kafka-console-producer.bat可以不断地接收标准输入并将它们发送到 Kafka 的某个 topic用户在控制台终端下启动该命令,输入一行文本数据,然后该脚本将该行文本封装成Kafka 消息发送给指定的 topic .为了使用该脚本工具发送消息,用户需要再打开 个新的终端,执行下列命令:

D:\opensource\kafka3.2\bin\windows>kafka-console-producer.bat --bootstrap-server localhost:9092 --topic topic-hello>hello>ni hao

上面命令往 topic-hello 这个主题中发送了两行消息 , 如果需要结束生产者客户端的话使用ctrl+c

消费者消费消息

同样Kafka提供了针对于消费者的脚本,kafka-console-consumer.bat可以方便的从Kafka中订阅和消费消息,我们打开新的终端执行命令:

D:\opensource\kafka3.2\bin\windows>kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic topic-hello --from-beginninghelloni hao

上面命令是通过客户端:消费topic-hello主题中的消息,--from-beginning表示获取历史数据,即使消费者宕机了也可以拿到曾经生产者发送的消息 。需要结束消费者者客户端的话使用ctrl+c

如果是在linux环境中那么就使用 bin目录下的对应脚本即可, 另外 kafka-console-consumer 和 kafka-console-producer 还有很多参数可以指定,如果不加任何参数直接执行他们可以打印各自的帮助文档。

文章就写到这里把,本篇文章我们对Kafka进行了windows环境的安装,同时使用kafka提供的脚本演示了 topic创建,消息发送,消息消费的过程。相信各位对Kafka已经有了一个基本的认识,下一章我将带你深入理解Kafka的架构核心和高并发高吞吐量的原理。

点赞还是要求一下的,万一屏幕面前的大帅哥或者大漂亮就评论收藏了呢?

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。