kafka在windows及linux下的安装使用以及kafka与springboot整合

kafka服务端在windows下的安装及使用

  • kafka下载网址下载最新版,最新版包含zookeeper
  • 解压,zookeeper默认端口为2181,如需要修改可以在config/zookeeper.properties配置如:
    kafka在windows及linux下的安装使用以及kafka与springboot整合
  • 当集群配置时slave(从服务器)可通过config/server.properties配置其zookeeper服务端的地址如:
    kafka在windows及linux下的安装使用以及kafka与springboot整合
  • 启动zookeeper:zookeeper-server-start.bat …/…/config/zookeeper.properties
    kafka在windows及linux下的安装使用以及kafka与springboot整合
  • 启动kafka:kafka-server-start.bat …/…/config/server.properties
    kafka在windows及linux下的安装使用以及kafka与springboot整合
  • 创建一个名为test的topic:kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
    kafka在windows及linux下的安装使用以及kafka与springboot整合
  • 查看创建的topic:kafka-topics.bat --list --zookeeper localhost:2181
    kafka在windows及linux下的安装使用以及kafka与springboot整合
  • 创建生产者,kafka端口为9092:kafka-console-producer.bat --broker-list localhost:9092 --topic test
    kafka在windows及linux下的安装使用以及kafka与springboot整合
  • 新起一个命令行新建消费者:kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test --from-beginning
    kafka在windows及linux下的安装使用以及kafka与springboot整合

kafka服务端在linux下的安装及使用(linux使用vmware)

  • 下载压缩包,和windows使用的一样
  • 启动zookeeper
    kafka在windows及linux下的安装使用以及kafka与springboot整合
    报错如下:/usr/local/kafka_2.13-2.5.0/bin/kafka-run-class.sh: 第 315 行:exec: java: 未找到,是因为系统未安装jdk的原因
    kafka在windows及linux下的安装使用以及kafka与springboot整合
    安装jdk
    kafka在windows及linux下的安装使用以及kafka与springboot整合
    启动zookeeper依然报错:因vmware设置的处理器个数为1,此时将vmware处理器数改为2
    kafka在windows及linux下的安装使用以及kafka与springboot整合
    kafka在windows及linux下的安装使用以及kafka与springboot整合
    重启虚拟机再次执行成功:./zookeeper-server-start.sh …/config/zookeeper.properties
    kafka在windows及linux下的安装使用以及kafka与springboot整合
  • 启动zookeeper后不要关掉窗口,再使用shell打开一个窗口启动kafka:./kafka-server-start.sh …/config/server.properties
    kafka在windows及linux下的安装使用以及kafka与springboot整合
  • 使用shell再打开一个窗口创建主题:./kafka-topics.sh --list --zookeeper localhost:2181
    kafka在windows及linux下的安装使用以及kafka与springboot整合
  • 使用shell再打开一个窗口创建生产者:./kafka-console-producer.sh --broker-list localhost:9092 --topic test
    kafka在windows及linux下的安装使用以及kafka与springboot整合
  • 再使用shell打开一个窗口创建消费者:kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test --from-beginning,报错如下:
    kafka在windows及linux下的安装使用以及kafka与springboot整合
    再次检查,后面多了一个“/”,去掉后:
    kafka在windows及linux下的安装使用以及kafka与springboot整合
    因为之前在生产者推送了一条消息,再消费者启动后可以收到此消息
    测试是否可以实时收到消息:忽略HHH,按backsapce时出现的乱码,结果是可以收到消息
    kafka在windows及linux下的安装使用以及kafka与springboot整合
    【注】在使用shell打开zookeeper,kafka,生产者,消费者时不能关闭窗口否则会关闭相应的服务
    要想在关闭时不关闭kafka服务使用以下命令启动kafka:./kafka-server-start.sh …/config/server.properties &

    kafka在windows及linux下的安装使用以及kafka与springboot整合
    退出时使用exit再关掉窗口,不要使用ctrl+c或者直接可视化关闭按钮
    kafka在windows及linux下的安装使用以及kafka与springboot整合
    zookeeper亦可
    kafka在windows及linux下的安装使用以及kafka与springboot整合

springboot和kafka整合

  • pom.xml:
    kafka在windows及linux下的安装使用以及kafka与springboot整合
  • application.yml配置如下:
    kafka在windows及linux下的安装使用以及kafka与springboot整合
  • 生产者:
    kafka在windows及linux下的安装使用以及kafka与springboot整合
  • 消费者:
    kafka在windows及linux下的安装使用以及kafka与springboot整合
  • 测试:
    kafka在windows及linux下的安装使用以及kafka与springboot整合浏览器输入测试路径:
    kafka在windows及linux下的安装使用以及kafka与springboot整合
    控制台打印:
    kafka在windows及linux下的安装使用以及kafka与springboot整合
    【注】如kafka服务端在此kafka客户端未启动推送的有消息的话,在kafka客户端启动时会获取到此消息:
    测试此种情况:
    1、关闭kafka客户端
    2、在命令行创建生产者并发送消息:
    kafka在windows及linux下的安装使用以及kafka与springboot整合
    3、启动kafka客户端,如下收到了消息,但是是中文乱码:
    kafka在windows及linux下的安装使用以及kafka与springboot整合