SpringBoot2.0之整合Kafka

Kafka入门4.0.0版本(基于Java、SpringBoot操作) Kafka 4.0.0 版本核心要点 架构革新:Kafka 4.0.0 采用KRaft模式完全取代ZooKeeper,通过Raft算法实现内置元数据管理,显著简化部署运维并提升扩展性。 核心概念:包含Producer/Consumer、Broker、Topic、Partition等组件,采用生产者Push和消费者Pull模式,支持多副本机制保障数据可靠性。 版本特性: 消息持久化采用日志顺序存储 副本机制(Leader/Follower)确保高可用 ISR机制维护数据一致性 支持生产者/消费者事务 安装配置 阅读详情

SpringBoot2.0之整合Kafka

maven依赖:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.itmayiedu</groupId>
    <artifactId>springboot2.0_kafka</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.1.RELEASE</version>
    </parent>
    <dependencies>
        <!-- springBoot集成kafka -->
        <dependency>
            <groupId>org.springframework.kafka</groupId>
            <artifactId>spring-kafka</artifactId>
        </dependency>
        <!-- SpringBoot整合Web组件 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

</project>

yml:

# kafka
spring:
  kafka:
    # kafka服务器地址(可以多个)
    bootstrap-servers: 192.168.91.1:9092,192.168.91.3:9092,192.168.91.4:9092
    consumer:
      # 指定一个默认的组名
      group-id: kafka2
      # earliest:当各分区下有已提交的offset时,从提交的offset开始消费;无提交的offset时,从头开始消费
      # latest:当各分区下有已提交的offset时,从提交的offset开始消费;无提交的offset时,消费新产生的该分区下的数据
      # none:topic各分区都存在已提交的offset时,从offset后开始消费;只要有一个分区不存在已提交的offset,则抛出异常
      auto-offset-reset: earliest
      # key/value的反序列化
      key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
      value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
    producer:
      # key/value的序列化
      key-serializer: org.apache.kafka.common.serialization.StringSerializer
      value-serializer: org.apache.kafka.common.serialization.StringSerializer
      # 批量抓取
      batch-size: 65536
      # 缓存容量
      buffer-memory: 524288
      # 服务器地址
      bootstrap-servers: 192.168.91.1:9092,192.168.91.3:9092,192.168.91.4:9092

 

 消费者:消费 topic为“test”的消息

 

/**
     * 消费者使用日志打印消息
     */

    @KafkaListener(topics = "test")   //监听同一个主题
    public void receive(ConsumerRecord<?, ?> consumer) {
        System.out.println("topic名称:" + consumer.topic() + ",key:" + consumer.key() + ",分区位置:" + consumer.partition()
                + ", 下标" + consumer.offset());
    }

可以看到分区都是0昂~ tets创建时候 partition是1哦  就是在proker1上创建的主题

 

 写个controller,自己生产 ,自己消费

 

import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@SpringBootApplication
public class KafkaController {

    /**
     * 注入kafkaTemplate
     */
    @Autowired
    private KafkaTemplate<String, String> kafkaTemplate;

    /**
     * 发送消息的方法
     *
     * @param key
     *            推送数据的key
     * @param data
     *            推送数据的data
     */
    private void send(String key, String data) {
        // topic 名称 key data 消息数据
        kafkaTemplate.send("my_test_topic", key, data);  //三个参数: topic名称      key   消息数据

    }
    // test 主题 1 my_test 3

    @RequestMapping("/kafka")
    public String testKafka() {
        int iMax = 6;          
        for (int i = 1; i < iMax; i++) {  //循环发6次kafka消息
            send("key" + i, "data" + i);
        }
        return "success";
    }

    public static void main(String[] args) {
        SpringApplication.run(KafkaController.class, args);
    }

    /**
     * 消费者使用日志打印消息
     */

    @KafkaListener(topics = "my_test_topic")   //监听同一个主题
    public void receive(ConsumerRecord<?, ?> consumer) {
        System.out.println("topic名称:" + consumer.topic() + ",key:" + consumer.key() + ",分区位置:" + consumer.partition()
                + ", 下标" + consumer.offset());
    }

}

运行后:

 可以看到key与对应的分区存储情况! 分区就是不同的 broker    比如key1  和 key2 存放在 第三个broker~

 

 也可以查看每个节点的日志  000000000.log的情况 我这边显示乱码 我就不多做展示了

 

 看看我们的zk:

 

SpringBoot2.2.0整合kafka2.5集群 接上一篇,搭建好kafka集群 先看效果, 生产者发送10条数据,3个消费者轮训处理10条数据。 直接上代码,复制粘贴即可执行! POM文件 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.0.RELEASE</v 阅读详情

相关推荐

SpringBoot整合kafka

SpringBoot整合kafka代码,两个工程 一个消费者 一个生产者,利用定时任务。很简洁代码。欢迎大家下载哦。可参考这篇文章代码哦。https://blog.csdn.net/weixin_39984161/article/details/91986809

记录一次springboot2.x整合canal+kafka踩坑

运维大大搭建好服务之后,监听到kafka的canal数据后,发现数据全是乱码,程序根本没法正常往下走,贴张截图: 网上找了一圈也没找到一个有效的处理办法,后来有个前辈做过这个,给我指导了一下,原来是序列化问题,直接贴代码: import com.alibaba.otter.canal.client.kafka.MessageDeserializer; import org.apache.kafka.clients.consumer.ConsumerConfig; import org.apache.kaf

qq1170993239的博客 1704

win11本地部署openclaw实操第5集-X11图形化界面搭建,让WSL2“看见”世界

本文介绍了在WSL2中实现图形界面(GUI)的方法。由于WSL2默认没有图形界面,需要使用X11服务器作为"翻译显示器",将Linux程序的图形指令渲染到Windows窗口中。推荐使用VcXsrv作为X11服务器,详细说明了其安装和配置步骤,包括选择"One large window"显示模式、禁用访问控制等关键设置。随后在Ubuntu中安装轻量级xfce4桌面环境,并通过设置DISPLAY环境变量将图形输出指向VcXsrv。最终通过startxfce4命令成功在Vc

weixin_44626085的博客 811

Spring Boot整合Kafka

Spring Boot整合Kafka

Charge8的博客 7109

ESP32-S3双模CMSIS-DAP调试器:USB+WiFi无线调试方案

CMSIS-DAP是ARM生态中标准化的嵌入式调试协议接口,广泛用于Keil、IAR、STM32CubeIDE等开发环境。其核心原理是通过SWD/JTAG物理层实现目标芯片寄存器访问、内存读写与断点控制,依赖确定性时序和低延迟通信。传统DAPLink调试器受限于USB线缆束缚,而WiFi-USB-DAPLink项目将完整CMSIS-DAP v2协议栈移植至ESP32-S3平台,同时支持USB CDC直连与WiFi TCP远程通道,兼顾实时性与网络化部署能力。该方案无需主机驱动、兼容主流IDE,并支持多机并发

weixin_31185473的博客 369

【图数据库与知识图谱入门】2.2 图数据库 vs. 关系型数据库 vs. NoSQL数据库

本文对比了关系型数据库、NoSQL数据库和图数据库的核心差异与应用场景。关系型数据库以二维表结构为核心,适合结构化数据的事务处理(如MySQL),但多表关联查询性能随层级增加而下降。NoSQL数据库(如MongoDB)具有灵活schema,适合海量非结构化数据存储,但关联查询能力较弱。图数据库专注于节点-边关系建模,擅长处理复杂关联分析(如社交网络)。通过学生-课程案例展示了MySQL的多表JOIN操作和MongoDB的两种关联实现方式(内嵌文档和文档引用),揭示了不同数据库在数据关联处理上的本质区别。

kngines 1541

SpringbBoot2.0整合kafka

1 kafka安装 1.1 Windows 查看安装https://blog.csdn.net/github_38482082/article/details/82112641 2 启动kafka 启动kafka内置的zookeeper .\bin\windows\zookeeper-server-start.bat .\config\zookeeper.properties 出现bindin...

dml111727 724

Linux显卡管理避坑指南:为什么Xorg总是占用你的NVIDIA GPU?

本文深入解析了在Linux系统上,尤其是双显卡笔记本中,Xorg显示服务器进程占用NVIDIA GPU的根本原因。文章从Xorg的驱动加载机制和NVIDIA驱动的独占性入手,详细对比了禁用配置文件、手动配置xorg.conf、使用官方PRIME方案以及切换到Wayland等主流解决方案的优缺点与适用场景,旨在帮助用户有效释放GPU资源,确保深度学习、游戏等计算任务能独占显卡性能。

xgboost6farmer的博客 268

SpringBoot集成Kafka详解

在Spring Boot项目中集成Kafka,首先需要确保Kafka服务器已经启动并正常运行。然后,通过引入 Kafka依赖,编写yml配置,创建Kafka生产者和消费者。最后通过接口调用,实现消息发送和消费。

qq_50847694的博客 3127

22AP10 SS524 平替 海思HI3521DV200 可提供开发资料

入,突破了数字接口的视频输入性能瓶颈,提供两倍于前代产品的视频输入能力。视频编解码引擎、视频图像处理的算法效果及性能得到了进一步提升。芯片为客户产品提供了高性能、优异图像质量。推理引擎,支持多种智能算法应用。合丰富的外围设备及高速接口,该。解决方案,广泛用于模拟高清。产品应用开发的新一代专。四核处理器和性能强大的。

szhorsway的博客 1011

STM32 cubeMX配置串口重定向

这篇文章主要讲解什么是串口重定向,为什么要串口串口重定向。使用printf函数和上位机通信是非常的方便的。希望大家都能够掌握。

m0_49476241的博客 4572

Springboot2.0整合Kafka,从Kafka并发、批量获取数据

Springboot2.0整合Kafka,从Kafka并发、批量获取数据Kafka安装SpringBoot整合kafka消费者a. 引入Pomb.JAVA代码配置文件(YML)消费者a.Pom文件b1.Java代码(无并发访问、无批量获取)b2.配置文件c.Java代码(并发、批量获取) Kafka安装 Kafka是由Apache软件基金会开发的一个开源流处理平台,是一种高吞吐量的分布式发布订阅消...

menxin_job的博客 1万+

从 ABAP 视角看 JSON :7.40 版本带来的那些改变

摘要:ABAP 对 JSON 的原生支持 随着企业系统与外部 API 的交互增多,ABAP 从 NetWeaver 7.40 开始原生支持 JSON 格式。通过复用现有 XML 基础设施,ABAP 团队引入 JSON-XML 概念,使用 sXML Library 和 IF_SXML=>CO_XT_JSON 常量处理 JSON 数据。开发人员可通过 CALL TRANSFORMATION 语句实现 ABAP 数据与 JSON 的双向转换,大幅简化了与外部系统的数据交互。这种标准化的 JSON 处理方式提

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 180

JAVA: Springboot2.0整合Kafka,从Kafka并发、批量获取数据

这里有一个非常陷阱的问题需要特别注意:序列化类的路径是:org.apache.kafka.common.serialization.StringSerializer。当前SpringBoot版本为2.0.2.RELEASE,打包工具为Maven。软件基金会开发的一个开源流处理平台,是一种高吞吐量的分布式发布订阅消息系统。如果不使用并发获取、批量获取消费者的代码非常简单。

jasonhongcn的专栏 7474

uniapp微信小程序 - 解决输入框input软键盘弹起时页面整体上移问题,页面上推导致顶部出现元素遮挡问题,uniapp软键盘导致页面上移头部内容被错位遮住错乱,让页面头固定在顶部不动不会受影响!

解决uni-app微信小程序底部input输入框,键盘弹起时页面整体上移问题,当键盘弹起时,会导致页面整体上移,页面头固定在顶部不动,微信小程序键盘弹起时,底部输入框抬起至键盘上方,顶部导航栏固定不动,uni-app输入框,输入框在底部;当弹出键盘时,页面整体上移,页面头信息会消失不见,小程序底部input输入框,input组件弹起系统键盘时,键盘会顶住页面导致页面会上移,当键盘弹起时整个页面被挤压,导致元素上移或被覆盖,输入框能自动抬起至键盘上方,顶部导航栏保持固定,不被顶上去,如何解决这个问题,动态高度

✅ 精选推荐文章 1万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Spring Boot 2.0.6 整合 Spring Clod Bus + Kafka

Spring Boot 2 .0.5 整合 Spring Clod Bus + Kafka 整休说明 本文是对 纯洁的微笑 的技术文章 springcloud(九):配置中心和消息总线(配置中心终结版) 的SpringBoot版本改到2.0.5以及支持整合Kafka的相关处理。对整合过程中出现的问题作了记录,供大家参考。 kafka 集群,本文使用3个结点kafka。kafka具体搭...

zx11010617的博客 1038

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

springboot 2.6.x 整合 2.8.0kafka

Kafka 本质上是⼀个消息队列。与zeromq不同的是,Kafka是一个独立的框架而不是一个库。这里主要介绍其原理,至于具体的安装等操作不做介绍,只是提示一下,第一次运行时,先设置前台运行,看会不会报错。人生路上遇风雨,才发现,路必须自己走,苦必须自己受;生活路上有苦甜,才发现,伤必须自己舔,槛必须自己过。人生是一种平衡,你拥有了这样,必然会错过那样;你什么都想得到,结果通常会失去更多。不必奢求人生中有绝对的公平,公平就如天平的两端,一端的付出越多,别一端才可以承载更多的希冀。

weixin_45982841的博客 1341

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

springboot2.0 整合kafka

我们使用springboot 2.1.3版本 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>...

鸭鸭的博客 1793

【小白也能听懂】10分钟快速入门Kafka,并以Springboot2.x整合Kafka2.2.0举例

Kafka是什么? Kafka是一个分布式的基于 发布 / 订阅模式 的消息队列。 Kafka常解决的四个问题 可以实现代码上的解耦(A系统发布请求到消息队列,B系统什么时候想取了再去消息队列获取即可)。 消息队列可以用于削峰(当服务器处于高占用的时候,可以把请求放到消息队列中,这样的话请求就可以延迟处理,高峰期就不用长时间占用了) 可恢复性(A系统请求B系统,当B系统挂了的时候,由于A系统已经把请求放到消息队列中了 ,等待B系统恢复之后可以继续消费请求,这里涉及到 offset 的知识) 缓冲(主要

qq_43097201的博客 462

Spring Boot2.0 整合 Kafka

Kafka 概述 Apache Kafka 是一个分布式流处理平台,用于构建实时的数据管道和流式的应用.它可以让你发布和订阅流式的记录,可以储存流式的记录,并且有较好的容错性,可以在流式记录产生时就进行处理。 Apache Kafka是分布式发布-订阅消息系统,在 kafka官网上对 Kafka 的定义:一个分布式发布-订阅消息传递系统。 Kafka 特性 高吞吐量、低延迟:kafka每秒可以处...

weixin_30784501的博客 356

springboot 2.2.0版本整合 Kafka 版本对应问题

所有版本配套详情参见:https://spring.io/projects/spring-kafka 项目中使用的为2.2.0版本 springboot,对应Kafka配套版本参见下图; <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.

scanklm的专栏 7521

Spring Boot 2.0 快速集成整合消息中间件 Kafka

欢迎关注个人微信公众号: 小哈学Java, 每日推送 Java 领域干货文章,关注即免费无套路附送 100G 海量学习、面试资源哟!! 个人网站: https://www.exception.site/springboot/spring-boot2-kafka 什么是 Kafka? Kafka 是 Apache 基金会开源的一个分布式发布 - 订阅消息中间件,流处理平台。 它起源于 Linke...

犬小哈 371

kafka整合springboot2.0(六)

1、生产者 消费者pom <!--spring boot 版本依赖--> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <versi...

qq_34125999的博客 2816

springboot2.0整合kafka,centos安装kafka

一.centos安装kafka 1.下载kafka压缩包 wget https://www.apache.org/dyn/closer.cgi?path=/kafka/2.1.0/kafka_2.11-2.1.0.tgz 2.解压安装包 tar -zvxf kafka_2.11-2.1.0.tgz 3.启动zookeeper服务(cd进入解...

乐闻世界 662
上一篇: Kafaka高可用集群环境搭建
下一篇: Elasticsearch6.4.3安装
Art&Code
博客等级 码龄7年 77粉丝 554原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值