spring boot 集成kafka

SpringBoot集成Kafka详解 我们知道,kafka中每个topic被划分为多个分区,那么生产者将消息发送到topic时,具体追加到哪个分区呢?这就是所谓的分区策略,Kafka 为我们提供了默认的分区策略,同时它也支持自定义分区策略。其路由机制为:1.若发送消息时指定了分区(即自定义分区策略),则直接将消息append到指定分区; 阅读详情

1.在pom.xml文件上添加依赖

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.3.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.kafka</groupId>
        <artifactId>spring-kafka</artifactId>
    </dependency>
    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.8.5</version>
    </dependency>
</dependencies>

2.配置文件application.properties

# kafka
spring.kafka.bootstrap-servers=192.168.3.146:8092
spring.kafka.consumer.group-id=springboot-group1
spring.kafka.consumer.key-deserializer=org.apache.kafka.common.serialization.StringDeserializer
spring.kafka.consumer.value-deserializer=org.apache.kafka.common.serialization.StringDeserializer
spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer
spring.kafka.producer.value-serializer=org.apache.kafka.common.serialization.StringSerializer
logging.level.root=info 

3.添加消费类和发送消息类

@Component
public class KafkaReceiver {
    @KafkaListener(topics = {"wftest"})
    public void listen(ConsumerRecord<?, ?> record) {
        Optional<?> kafkaMessage = Optional.ofNullable(record.value());
        if (kafkaMessage.isPresent()) {
            Object message = kafkaMessage.get();
            System.out.println("record =" + record);
            System.out.println("message =" + message);
        }
    }
}
@Component
public class KafkaSender {

    @Autowired
    private KafkaTemplate<String, String> kafkaTemplate;

    private Gson gson = new GsonBuilder().create();

    public void send() {
        Message message = new Message();
        message.setId(System.currentTimeMillis());
        message.setMsg(UUID.randomUUID().toString());
        message.setSendTime(new Date());
        kafkaTemplate.send("wftest", gson.toJson(message));
    }
}
public class Message {
    private Long id;

    private String msg;

    private Date sendTime;


    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public Date getSendTime() {
        return sendTime;
    }

    public void setSendTime(Date sendTime) {
        this.sendTime = sendTime;
    }

4.测试

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        ConfigurableApplicationContext context =  SpringApplication.run(Application.class, args);

        KafkaSender sender = context.getBean(KafkaSender.class);
        for (int i = 0; i < 3; i++) {
            sender.send();

            try {
                Thread.sleep(3_000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }

}

 

运行时报错:org.apache.kafka.common.errors.TimeoutException。

排查问题:

1.kafka中间件是否正常启动

2.配置文件配置是否有有问题

3.hosts配置文件是否配置kafka服务器的hostname

我们可以打开debug日志,查看详细日志信息。

logging.level.root=debug

如图所示:我们可以通过日志可以分析出来,它使用的是hostname连接kafka服务器的,所以要配置hosts文件。

 

Spring Boot集成Kafka Spring Boot集成Kafka Spring Boot集成Kafka 前提介绍 Kafka 简介 Topics & logs Distribution Producers Consumers Guarantees Kafka安装与使用 安装 服务启动 Topic 消息发送与消费 Spring Boot集成 开始 配置 代码 总结 参考资料 前提介绍由于公司使用了微服务架构,很多业务拆成 阅读详情

相关推荐

Spring Boot 集成 Kafka

Kafka 是一个分布式的流处理平台,同时也可以作为一个高性能的消息队列系统使用。它最初由 LinkedIn 开发,后来成为了 Apache 软件基金会的一个开源项目。高吞吐量:Kafka 能够处理大量的消息,每秒可以处理数十万条消息。分布式架构:Kafka 可以在多个服务器上运行,实现分布式存储和处理消息。可扩展性:可以根据需要动态地增加或减少服务器数量,以满足不同的负载需求。持久化存储:Kafka 可以将消息持久化存储在磁盘上,保证消息不会丢失。

m0_74824802的博客 1183

Kafka-使用springBoot连接

Kafka-使用springBoot连接 注意事项 连接kafka的电脑需要设置hosts如下: 192.168.1.251 node1 192.168.1.252 node2 192.168.1.253 node3 具体根据个人的实际情况配置 maven依赖 <dependency> <groupId>org.springframework.kafka</groupId> <artifactId&g

孙霸天的专栏 7199

spring boot 集成多个kafka集群

有时候我们的集成软件需要在项目中集成多个kafka集群,实现步骤如下: 步骤一:配置第二个kafka文件 步骤二:定义第二个kafka的实现类 /** * @Description: <br> * @Project: <br> * @CreateDate: Created in 2019/4/26 18:20 <br> * @Autho...

xiaozm1223的博客 1万+

spring boot使用kafka

介绍:之前的文章里面讲过了怎么部署kafka,这边文章就介绍怎么使用spring boot 使用kafka 第一步:加入相关架包 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifact...

凉白开不加冰 1319

Spring boot 集成 kafka及storm

转载请注明作者及出处 前言​ 由于业务需求需要把Strom与kafka整合到spring boot项目里,实现其他服务输出日志至kafka订阅话题,storm实时处理该话题完成数据监控及其他数据统计,但是网上教程较少,今天想写的就是如何整合storm+kafka 到spring boot,顺带说一说我遇到的坑。使用工具及环境配置​ 1. java 版本jdk-1.8​ 2. 编译工具使用

m0_38031618的博客 4762

Spring Boot如何集成Kafka?

🏆 本文精选收录于《滚雪球学SpringBoot》专栏,专为零基础学习者量身打造。从Spring基础到项目实战,手把手带你掌握核心技术,助力你快速提升,迈向职场巅峰,开启财富自由之路🚀!无论你是刚入门的小白,还是已有基础的开发者,都能在这里找到适合自己的学习路径!    🌟 关注、收藏、订阅,持续更新中!和我们一起高速成长,突破自我!💡

**My Coding Family** 1792

SpringBoot——集成Kafka详解

我们知道,kafka中每个topic被划分为多个分区,那么生产者将消息发送到topic时,具体追加到哪个分区呢?这就是所谓的分区策略,Kafka 为我们提供了默认的分区策略,同时它也支持自定义分区策略。若发送消息时指定了分区(即自定义分区策略),则直接将消息append到指定分区;若发送消息时未指定 patition,但指定了 key(kafka允许为每条消息设置一个key),则对key值进行hash计算,根据计算结果路由到指定分区,这种情况下可以保证同一个 Key 的所有消息都进入到相同的分区;

吴声子夜歌的博客 2万+

matlab 求解多项式的根 四种方法

matlab 求解多项式的根 四种方法 方法一 %多项式求根函数roots p=[1,-3,1];%建立多项式系数向量p x=roots(p)%求多项式的根 x=-5:0.1:5;%步长为0.1 y1=x.*x-3*x+1;%构建一个函数 y2=zeros(size(x));%产生一个与x同大小的零向量 plot(x,y1,x,y2); 方法二 %利用函数fzero f=@(x)x*x-3*x+1; x1=fzero(f,0.5) x2=fzero(f,2.5) 方法三 %利用f

weixin_57038822的博客 1万+

SpringBoot:整合Kafka

虽然Kafka可作为消息组件使用,但它并不是单纯的消息组件,它被定位成“开源的分布式事件流平台(open-source distributed event strea ming platform)”,因此它和JMS实现或AMQP实现存在较大的差异。由于目前Kafka还依赖于ZooKeeper,因此在安装Kafka之前需要先安装,运行 ZooKeeper。

燕双嘤 3882

Qoder CN 完全指南:阿里云AI智能体的全景拆解

阿里云旗下AI编程助手"通义灵码"于2026年5月20日升级为QoderCN,转型为覆盖软件开发与办公场景的AI智能体产品矩阵。该平台具备四大核心能力:代码补全、智能问答、文件编辑和智能体模式,支持GLM、DeepSeek等多模型切换。特色功能包括Quest2.0任务委派、专家团协作和记忆感知,满足金融、政务等行业的合规需求。产品形态涵盖IDE插件、CLI工具、办公助手和数字员工,形成"全家桶"式解决方案。相比Cursor等海外产品,QoderCN更注重全链路覆盖,个

几十年资深高级架构师,技术专家的技术笔记。专注C、Java、Python、微服务、云原生、AI工程化及高并发系统分布式架构实战,分享源码剖析、性能调优与架构治理经验。 973

从原始数据到农学模型:DJI M3M/P4M多光谱影像全链路处理实战

本文详细介绍了使用DJI M3M/P4M多光谱无人机进行农学建模的全链路流程。核心在于强调辐射标定的首要性,它将原始DN值转换为具有物理意义的反射率,是确保后续植被指数计算与模型反演准确性的基石。文章通过大疆智图和Pix4Dfields的实战演示,手把手指导完成数据处理、影像镶嵌及光谱信息提取,最终构建从光谱指数到叶面积指数等关键农学参数的反演模型,实现精准农业分析。

weixin_29281941的博客 244

Spring Boot 集成 Apache Kafka 实战指南

本文详细介绍了如何在Spring Boot项目中集成Apache Kafka,包括环境准备、项目创建、Kafka配置、生产者消费者实现及测试步骤。通过添加Spring Kafka依赖,配置连接信息,编写消息发送和接收服务,并提供REST接口进行测试验证,开发者可以快速实现Kafka的集成应用。文章还给出了Kafka环境启动命令和扩展功能建议,为构建实时数据处理系统提供了完整解决方案。

2503_92145588的博客 4424

多模态情感识别(MER)数据集实战指南:从IEMOCAP到应用落地

本文提供了多模态情感识别(MER)从数据集到应用落地的完整实战指南。以经典IEMOCAP数据集为例,详细讲解了音频、视觉、文本等多模态数据的预处理、特征提取与融合技术,并分享了模型训练调优心得及面向智能客服、在线教育等场景的部署考量,帮助开发者快速构建高效可用的MER系统。

h3i4j的博客 1072

spring boot集成kafka之spring-kafka深入探秘

前言 kafka是一个消息队列产品,基于Topicpartitions的设计,能达到非常高的消息发送处理性能。Spring创建了一个项目Spring-kafka,封装了Apache 的Kafka-client,用于在Spring项目里快速集成kafka。除了简单的收发消息外,Spring-kafka还提供了很多高级功能,下面我们就来一一探秘这些用法。 项目地址:https://github....

zzpdljd1991的博客 8610

DeepSeek 赋能招投标全流程智能化:多模态解析、知识图谱与投标文件自动生成实战指南(附完整代码与行业案例)

摘要:本文深入探讨DeepSeek技术在招投标领域的全流程智能化应用,通过整合自然语言处理(NLP)、多模态解析、知识图谱等核心技术,实现招标文件智能解析与投标文件自动生成。文中详细解析DeepSeek-R1模型的多模态处理机制、动态知识图谱构建方法及智能模板填充算法,通过完整代码实现展示技术细节。结合广某资源交易平台、山西XX"XX云"等典型案例,验证技术方案在提升招投标效率、降低人为错误方面的显著效果。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1464

基于Simulink的轨道交通信号控制系统仿真详细介绍

轨道交通信号控制系统是确保列车安全、高效运行的核心技术。通过Simulink进行信号控制系统的仿真,可以验证系统的设计、优化调度策略并提高安全性。以下是如何在MATLAB和Simulink中设计并仿真一个轨道交通信号控制系统的详细步骤。通过上述步骤,我们成功设计并实现了基于Simulink的轨道交通信号控制系统仿真。该系统能够根据列车位置、速度和轨道状态生成控制指令,确保列车的安全、高效运行。通过虚拟场景仿真、硬件在环测试和实机测试,验证了系统的性能,并通过参数优化进一步提升了系统的可靠性。引入智能调度。

xiaoheshang_123的博客 463

Spring Boot 集成 Kafka 及实战技巧总结

一、Spring Boot 集成 Kafka添加依赖</</</配置 Kafka在spring:kafka:producer:acks: all # 确保消息可靠投递retries: 3 # 重试次数consumer:enable-auto-commit: false # 手动提交偏移量生产者示例@Service@Autowired消费者示例@Service// 处理消息逻辑二、实战技巧消息顺序性保证对需要顺序处理的消息设置相同的key,确保同一key的消息发送到同一分区。

bsklhao的博客 1467

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

【Spring Boot 集成应用】Kafka的集成用法

Kafka主要特点是基于Pull的模式来处理消息消费,追求高吞吐量,如果有大量的消息处理(10W+),对一致性要求不高, 那么可以采用KAFKA, 比如日志采集、 数据同步与归档、实时流数据处理等场景。 Spring 官方为我们提供了Spring-kafka组件, 这里讲解如何与Spring Boot集成使用,并通过代码将全面讲解Kafka普通订阅模式、死信队列配置使用、多路订阅模式以及事务控制的使用。...

Mirson - 多一些分享, 多一些进步 2万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

上一篇: 手写HashMap
下一篇: spring boot 集成mybatis
wflovejava
博客等级 码龄11年 23粉丝 46原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值