Java --- springboot3整合kafka

news/2024/10/31 4:19:26/

一、消息队列场景

1.1、异步 

 1.2、解耦

 1.3、削峰

1.4、缓冲

二、springboot整合kafka

 导入pom依赖

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

 修改配置

spring.kafka.bootstrap-servers=192.168.200.1:9092
#配置序列化
spring.kafka.producer.value-serializer=org.springframework.kafka.support.serializer.JsonSerializer

发送消息:

@SpringBootTest
class Boot3KafkaApplicationTests {@Autowiredprivate KafkaTemplate kafkaTemplate;@Testvoid contextLoads() {//计时StopWatch stopWatch = new StopWatch();CompletableFuture[] completableFuture = new CompletableFuture[1000];stopWatch.start();for (int i = 0; i < 1000; i++) {CompletableFuture send = kafkaTemplate.send("timi", "timi1", "haha");completableFuture[i] = send;}CompletableFuture.allOf(completableFuture).join();stopWatch.stop();//统计花费时间long totalTimeMillis = stopWatch.getTotalTimeMillis();System.out.println("1000条消息发送时间:"+ totalTimeMillis);}@Testvoid testKafka(){Person person = new Person();person.setName("张三");person.setAge(12);CompletableFuture send = kafkaTemplate.send("timi", "person", person);send.join();}
}

 创建主题

@Configuration
public class KafkaConfig {//创建主题@Beanpublic NewTopic topic(){return TopicBuilder.name("ax").partitions(1).compact().build();}
}

获取消息

@Component
@Log4j2
public class TimiKafkaListener {//默认获取最后一条消息@KafkaListener(topics = "timi",groupId = "timi")public void timiKafka(ConsumerRecord record){Object key = record.key();Object value = record.value();log.info("接收到消息的key {},value:{}",key,value);}//获取所有消息@KafkaListener(groupId = "ya",topicPartitions = {@TopicPartition(topic = "timi",partitionOffsets = {@PartitionOffset(partition = "0",initialOffset = "0")})})public void timiKafka2(ConsumerRecord record){Object key = record.key();Object value = record.value();log.info("接收到消息的key2 {},value2:{}",key,value);}
}

http://www.ppmy.cn/news/595566.html

相关文章

OpenCV动态人物识别代码

动态人物识别代码 int main() {// 打开视频文件或摄像头VideoCapture cap("vtest.avi");// VideoCapture cap(0); // 使用默认摄像头if (!cap.isOpened()){std::cout << "无法打开视频文件或摄像头流" << std::endl;return -1;}// 读取第一帧…

JQ/CSS禁止浏览器复制粘贴、右键、F12

一、CSS 在body里写下以下内容可禁止复制 body{-moz-user-select: none; /*火狐*/-webkit-user-select: none; /*webkit浏览器*/-ms-user-select: none; /*IE10*/-khtml-user-select: none; /*早期浏览器*/user-select: none; } 二、JQ 在JS里写以下内容可禁止右键和F12 $(…

vscode 加上c++11编译选项

问题描述 vscode 运行C11代码出现此错误 error This file requires compiler and library support for the ISO C 2011 standard. This support must be enabled with the -stdc11 or -stdgnu11 compiler options. 提示我们需要在编译命令中加一行选项&#xff0c;加入c11编译…

8 系统定时器(Systick)

目录 系统定时器&#xff08;Systick&#xff09; SysTick定时器特性介绍 SysTick定时器的功能 SysTick定时器寄存器介绍 Systick定时器的使用 系统定时器&#xff08;Systick&#xff09; SysTick定时器特性介绍 计数宽度&#xff1a; 24bit来存储数据&#xff0c;2^24…

电脑开机提示CPU Fan Error处理方法

1、系统BIOS检测不到CPU风扇的转速 这个是最常见的原因之一&#xff0c;我们可以进BIOS查看&#xff0c;开机后按下DEL键进入BIOS选项&#xff0c;接着进入Power→Hardware monitor&#xff0c;我们会看到有三个选项CPU FAN SPEED&#xff1b;CHASSIS FANSPEED&#xff1b;POWE…

基于Arduino的温控风扇

概述 基于Arduino的温控风扇系统&#xff0c;经DS18B20温度采集&#xff0c;将数据传送到Arduino&#xff0c;通过PWM调节占空比进而控制电机转速&#xff0c;经过驱动电路驱动电机&#xff0c;由电机的计数模块得到电机转速并用LCD1602显示。 设计方案 高电平时电压为U,占空…

计算机慢的解决方法,妹子告诉你:电脑慢的原因及快速解决办法

原标题&#xff1a;妹子告诉你:电脑慢的原因及快速解决办法 作为一名自诩电脑砖家的小编&#xff0c;总是会被妹子们各种各样电脑问题所雷倒。妹子们不按正确的方式使用电脑&#xff0c;频出的电脑硬件和软件问题&#xff0c;要比男生多得多。据网上调查显示&#xff0c;女生普…

ChatGPT最新版实现多样化聚合文章的批量生成文章

随着人工智能技术的不断发展&#xff0c;ChatGPT最新版在多样化聚合文章的批量生成方面取得了重要突破。本文将从随机选取的8个方面&#xff0c;对ChatGPT最新版的构建思想进行详细阐述。这些方面包括&#xff1a;自然语言处理、大规模数据集、迁移学习、多模态输入、生成模型优…