小爱今天去面试了,面试官问小爱平时用的消息中间件是哪一个,谈谈对其的看法。
小爱懵了,因为小爱平时做的项目都是传统软件,根本就没有用过消息中间件。
被面试官这么一问,小爱有点不知所措。
面试官说:你都工作三年了,怎么连消息中间件都没有接触过啊。
小爱听了都不好意思了。
作为一名java后端程序员,对于消息中间件是需要掌握的。
消息队列已经逐渐成为软件通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。
现在主流的消息中间件,有老牌的ActiveMQ、RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发RocketMQ等。
下面我们来了解下Kafka安装与使用
Kafka是使用scala编写的运行于jvm虚拟机上的程序,基本上是运行在linux服务器上,但也可以在windows上使用,今天我们用windows来体验下kafka
首先确保你的机器上安装了jdk,kafka需要java运行环境,以前的kafka还需要zookeeper,新版的kafka已经内置了一个zookeeper环境,所以不需要单独安装zookeeper,可以直接使用。
1、下载
在kafka官网下载到最新的kafka安装包,选择下载二进制版本的tgz文件
2、因为下载的是tgz文件,所以不需要安装,解压就好了。
Kafka目录介绍
/bin 操作kafka的可执行脚本,还包含windows下脚本
/config 配置文件所在目录
/libs 依赖库目录
/logs 日志数据目录,目录kafka把server端日志分为5种类型,分为:server,request,state,log-cleaner,controller
·
运行
不用修改任何配置文件,我们只需要知道 zookeeper的默认端口是2181,生产者的默认端口是9092就好。
如果只需要进行简单的尝试的话,把下载好的文件解压到任意目录即可,这里我下载解压d盘kafka文件夹。
1、启动zookeeper
·
D:\kafka\kafka_2.12-2.5.0\bin\windows\zookeeper-server-start.bat D:\kafka\kafka_2.12-2.5.0\config\zookeeper.properties
启动zookeeper成功后会看到如下的输出
从日志中我们可以得知,其默认端口为2181。
2、启动kafka
D:\kafka\kafka_2.12-2.5.0\bin\windows\kafka-server-start.bat D:\kafka\kafka_2.12-2.5.0\config\server.properties
3、创建topic
创建一个名为 topic-xiaoai 的主题,包含一个分区,只有一个副本
D:\kafka\kafka_2.12-2.5.0\bin\windows\kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic topic-xiaoai
查看topic
D:\kafka\kafka_2.12-2.5.0\bin/kafka-topics.sh --list --zookeeper localhost:2181
4、生产消息
D:\kafka\kafka_2.12-2.5.0\bin\windows\kafka-console-producer.bat --broker-list localhost:9092 --topic topic-xiaoai
启动生产者之后进入编辑页面,发送了 "hello",
不要关闭这个终端,再打开一个新的终端
5、消费消息
D:\kafka\kafka_2.12-2.5.0\bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic topic-xiaoai --from-beginning
当消费者启动之后,收到了之前生产者发送的 “hello”。
这样只要我们在生产窗口输入,在对应的消息窗口就会有输出
了解了kafka的安装和使用,接下来我们就可以编写对应代码,实现我们需要的功能了。代码编写下期再分享。
由于笔者水平有限,文中纰漏之处在所难免,权当抛砖引玉,不妥之处,请大家批评指正。
-END-
作者:洪生鹏 白天搬砖,晚上写故事。技术交流、媒体合作、品牌宣传请添加微信: hsp-88ios
猜你喜欢
更多惊喜,请长按二维码识别关注
你若喜欢,别忘了点【在看】