kafka集成SpringBoot api编写教程

1.新建项目

用的idea是20222.1.3版本,没有Spring Initializr 插件,不能直接创建springboot项目

可以在以下网址创建项目,下载后解压,然后用idea打开项目即可

1.1 在 https://start.spring.io/ 上创建项目

1.2上传到linux,解压

unzip Spring_Boot-kafka.zip

1.3 idea打开项目(文件-打开- Spring-Boot-kafka)

2.添加依赖(pox.xml)

(也可以选择修改对应的jdk版本,创建项目时勾选的是22)

bash 复制代码
                     <dependencies>

                     <dependency>

                            <groupId>org.springframework.boot</groupId>

                            <artifactId>spring-boot-starter-web</artifactId>

                     </dependency>

                     <dependency>

                            <groupId>org.springframework.kafka</groupId>

                            <artifactId>spring-kafka</artifactId>

                     </dependency>

               <dependency>

                     <groupId>org.springframework.boot</groupId>

                     <artifactId>spring-boot-starter</artifactId>

              </dependency>

              <dependency>

                     <groupId>org.springframework.boot</groupId>

                     <artifactId>spring-boot-starter-test</artifactId>

                     <scope>test</scope>

              </dependency>

       </dependencies>              

3.springboot生产者集成Kafka

3.1生产者api

新建controller包ProducerController类

java 复制代码
 package com.lir.Spring.Boot_kafka.controller;


import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.kafka.core.KafkaTemplate;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;


//导入注解

@RestController

public class ProducerController {

    //自动注入内容到kafka模板

    @Autowired

    KafkaTemplate<String,String> kafka;


    //导入注解,使外部能访问方法

    @RequestMapping("/ljr")

    //接收外部数据

    public String data(String msg){

        //通过kafka发送出去

        kafka.send("customers",msg);

        return "发送成功";

    }

}

3.2修改application.properties文件

bash 复制代码
#连接kafka集群

spring.kafka.bootstrap-servers=node1:9092,node2:9092


# key value 序列化

spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer
spring.kafka.producer.value-serializer=org.apache.kafka.common.serialization.StringSerializer

3.3运行SpringBootKafkaApplication

SpringBootKafkaApplication这个程序在创建项目时自动生成

打开网页输入地址node1:8080/ljr?msg="lisiguang" /ljr?msg均是ProducerController指定的

输入后网页返回发送成功

Kafka consumer 消费到信息

可见spring boot生成者集成Kafka成功

4.spring boot消费者集成Kafka

4.1消费者api

java 复制代码
package com.lir.Spring.Boot_kafka.controller;


import org.springframework.context.annotation.Configuration;

import org.springframework.kafka.annotation.KafkaListener;

//指定这个类为configuration类,以让KafkaListener能扫描到生效

@Configuration

public class MyConsumer {

    //监听主题

    @KafkaListener(topics = "customers")

    public  void consumerTopic(String msg){

        System.out.println("接收信息:" + msg);

    }

}

4.2修改application.properties文件

bash 复制代码
# key value 反序列化

spring.kafka.consumer.key-deserializer=org.apache.kafka.common.serialization.StringDeserializer

spring.kafka.consumer.value-deserializer=org.apache.kafka.common.serialization.StringDeserializer

# 消费者组id

spring.kafka.consumer.group-id=sbk

4.3运行SpringBootKafkaApplication

打开网页输入地址node1:8080/ljr?msg="lisi"

kafka生产信息

控制台有输出,spring boot消费者集成Kafka成功。

相关推荐
iRuriCatt13 小时前
智慧景区管理系统 | 计算机毕设项目
java·前端·spring boot·vue·毕设
qq_124987075313 小时前
基于springboot的会议室预订系统设计与实现(源码+论文+部署+安装)
java·vue.js·spring boot·后端·信息可视化·毕业设计·计算机毕业设计
susu108301891114 小时前
docker启动kafka
docker·容器·kafka
J_liaty14 小时前
Spring Boot + MinIO 文件上传工具类
java·spring boot·后端·minio
没有bug.的程序员14 小时前
Spring Boot 事务管理:@Transactional 失效场景、底层内幕与分布式补偿实战终极指南
java·spring boot·分布式·后端·transactional·失效场景·底层内幕
华农第一蒟蒻14 小时前
一次服务器CPU飙升的排查与解决
java·运维·服务器·spring boot·arthas
闻哥15 小时前
从 AJAX 到浏览器渲染:前端底层原理与性能指标全解析
java·前端·spring boot·ajax·okhttp·面试
码农阿豪16 小时前
基于Milvus与混合检索的云厂商文档智能问答系统:Java SpringBoot全栈实现
java·spring boot·milvus
让我上个超影吧18 小时前
天机学堂——BitMap实现签到
java·数据库·spring boot·redis·spring cloud
码农水水18 小时前
米哈游Java面试被问:Shenandoah GC的Brooks Pointer实现机制
java·开发语言·jvm·spring boot·redis·安全·面试