Kafka本地配置+idea连接调用_idea kafka插件
目前学习到kafka这个处理大数据的分布式应用,在配置本地服务并调用时遇到了困难,现在理解后,出一篇文章😁
首先要在本地安装zookeeper和kafka。
一、Zookeeper的安装与配置
1. 下载压缩包:官网途径:
https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.6.4/apache-zookeeper-3.6.4-bin.tar.gzhttps://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.6.4/apache-zookeeper-3.6.4-bin.tar.gz2. 解压后进入D:\\JavaProperties\\apache-zookeeper-3.6.4-bin
如下图位置,路径名称可以自定义。
2.1 新建文件夹 data
2.2 进入 conf 文件夹,复制 zoo_sample.cfg ,在原位置粘贴并改名为 zoo.cfg,如下图:
这里有个小技巧分享一下:点击工具栏上的 查看/显示,可以显示隐藏文件,文件扩展名
2.3 配置zoo.cfg文件
打开zoo.cfg后,修改 dataDir 和 clientPort 两个字段,后者默认为 2181,可以不修改
前者路径分隔要使用“\\\\”
2.4 配置系统环境变量
第一步,先完成ZOOKEEPER_HOME的配置,如下图顺序
第二步,配置Path变量
按如下步骤配置
3. 检查是否配置完成
win+r,输入cmd,在终端中输入 zkServer,出现如下输出就表示配置成功。注意配置的端口是否正确
二、Kafka的安装与配置
1. 下载压缩包:官网途径:
https://archive.apache.org/dist/kafka/3.5.1/kafka_2.12-3.5.1.tgzhttps://archive.apache.org/dist/kafka/3.5.1/kafka_2.12-3.5.1.tgz2. 进入D:\\JavaProperties\\kafka_2.12-3.5.1,新建文件夹kafka-logs
2.1 修改下图所选文件的配置
2.2 具体修改项
listeners=PLAINTEXT://localhost:9092log.dirs=D:\\\\JavaProperties\\\\kafka_2.12-3.5.1\\\\kafka-logszookeeper.connect=localhost:9093
最后一项,若未修改zookeeper的默认端口,则将9093改为2181
3. 检查是否配置完成
3.1 首先打开zookeeper
3.2 新开窗口,进入kafka安装目录,输入启动命令:
.\\bin\\windows\\kafka-server-start.bat .\\config\\server.properties
三、Idea连接Kafka本地服务器并调用
1. 创建项目,连接Kafka
2. 安装 Kafka 和 Big Data Tools Core 插件,需要科学上网
3. 连接本地服务器
要让终端在后台运行 Kafka 服务,才能正确连接
4. Kafka 配置
因为本地运行的 Kafka 服务占用了 8080 端口,所以改spring工程端口号
模拟Sender 和 Reciver,代码如下
Sender:
package com.vikTorx.demo;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.kafka.core.KafkaTemplate;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;@Controller@RequestMapping(\"kafka\")public class KafkaSender { @Autowired private KafkaTemplate kafkaTemplate; //发送消息方法 @RequestMapping(\"/send\") @ResponseBody public String send() { kafkaTemplate.send(\"Recipe\", \"Hongshaorou\", \"美味好吃\"); return \"success\"; }}
Reciver:
package com.vikTorx.demo;import java.util.Optional;import org.apache.kafka.clients.consumer.ConsumerRecord;import org.springframework.kafka.annotation.KafkaListener;import org.springframework.stereotype.Component;@Componentpublic class KafkaReceiver { // 完善此处的代码 @KafkaListener(topics = \"Recipe\") public void listen(ConsumerRecord record) { Optional kafkaMessages = Optional.ofNullable(record.value()); if (kafkaMessages.isPresent()) { Object message = kafkaMessages.get(); System.out.println(\"message = \" + message); } }}
5. 结果展示
浏览器输入http://127.0.0.1:8081/kafka/send 发送请求,在Idea终端查看结果
ok,全部完成啦,求点赞