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成功。

相关推荐
干到60岁退休的码农2 小时前
16.过滤器中处理异常响应返回
java·spring boot·mybatis
Bs_MoneyMagnet3 小时前
基于springboot+vue的旅游行程分享与推荐小程序的设计与实现 源码+文档
java·vue.js·spring boot·后端·微信小程序·毕业设计·计算机毕业设计
wno7044 小时前
Spring Boot整合MongoDB
spring boot·后端·mongodb
xcl09254 小时前
24小时自助健身房系统开发:从架构设计到落地实践
java·spring boot
雾隐隐o4 小时前
Kafka 消费者消息丢失:Offset 原理与解决方案
kafka
RuoyiOffice4 小时前
SpringBoot3+Vue3 项目立项到甘特:审批冻结台账、任务树怎么汇进度
spring boot·项目管理·vue3·甘特图·wbs·spring boot 3·立项审批
user_admin_god4 小时前
第 03 篇:Java HttpClient 手写第一个 Chat 请求
java·人工智能·spring boot·语言模型
gis开发之家4 小时前
Spring Boot 4 定时任务与异步线程池:从 @Scheduled 到高并发任务编排(生产级实战)
java·spring boot·后端·wpf·spring boot4
MetaLite13 小时前
SpringBoot接口分层规范-外网网关内部服务与参数边界
java·数据库·spring boot
凤山老林14 小时前
聊聊企业级 API 安全:Spring Boot 落地 OAuth 2.1、mTLS 与接口签名防篡改
spring boot·后端·安全·oauth