Kafka本地配置+idea连接调用

目前学习到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:9092
log.dirs=D:\\JavaProperties\\kafka_2.12-3.5.1\\kafka-logs
zookeeper.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<String, String> 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;

@Component
public 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,全部完成啦,求点赞

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值