IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> SpringBoot整合Kafka -> 正文阅读

[Java知识库]SpringBoot整合Kafka

本项目demo基于SpringBoot 2.6.3版本。

1、引入kafka依赖

    <dependency>
      <groupId>org.springframework.kafka</groupId>
      <artifactId>spring-kafka</artifactId>
    </dependency>

2、配置kafka

3、创建生产者

这里将生产者放在controller层,准备用浏览器触发来生产消息。

@RestController
@RequestMapping("/kafka")
public class KafkaController {

    @Resource
    private KafkaTemplate<String, String> kafkaTemplate;

    @RequestMapping("/send")
    public String sendMessage(@RequestParam("msg") String msg) {
        kafkaTemplate.send("topic-demo", msg);
        return String.format("消息 %s 发送成功!", msg);
    }
}

4、创建消费者

spring-kafka这个依赖提供了 @KafkaListener 这个注解来监听topic的消息,该注解有很多属性,其中topics属性和groupId属性是必须要配置的。

topics:顾名思义,表示需要配置主题。而且该属性支持配置多个topic,写法是字符串数组的形式。例:topics = {"topic-demo", "topic-demo2"}

groupId:可自定义。自定义的配置文件见这里:?kafka消费者的group id从哪里获取

@Component
public class MyConsumer {

    @KafkaListener(topics = "topic-demo", groupId = "test-consumer-group")
    public void handleMessage(ConsumerRecord<String, String> record, Acknowledgment ack) {
        System.out.println("=========开始消费消息=========");
        System.out.println("record:" + record);
        String value = record.value();
        System.out.println("message:" + value);
        ack.acknowledge();
        System.out.println("=========消费完成=========");
    }
}

5、生产到消费的效果演示

浏览器发送请求,投递了一条消息。

控制台立刻拉取了该条消息并消费完成。?

?6、SpringBoot与Kafka版本对应

参考Spring官网:Spring for Apache Kafka

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-09-24 20:42:44  更:2022-09-24 20:44:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 8:47:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码