springboot整合kafka附源码

发布时间:2023年12月21日

前提:确保kafka环境
我使用的方案是docker
我使用的镜像为:wurstmeister/kafka
我使用的镜像为:wurstmeister/zookeeper
docker安装kafka和zk教程:点这里手把手教你使用Docker搭建kafka【详细教程】

使用kafka前,要确保你对kafka有一个基本的了解,如topic(可以看成是rabbitmq的队列),分区,offset,生产者,消费者,消费者组等

此教程源码地址:https://gitee.com/jackXUYY/springboot-example.git

拉下代码之后,改一下kafka的地址为自己的kafka地址,然后把事务配置先注释掉
配置文件里的transaction-id-prefix属性
检查项目能否正常启动

我们先试一下简单的生产消费

在这里插入图片描述

在这里插入图片描述

发送消息
在这里插入图片描述

消费者
在这里插入图片描述

打印结果
在这里插入图片描述

再试一下发送消息带回调的方式

在这里插入图片描述
在这里插入图片描述

发送和消费结果
在这里插入图片描述

我们再试一下事务消息

生产者事务发送:需配置transaction-id-prefix开启事务

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
结果
在这里插入图片描述

再试一下第二种事务发送

在这里插入图片描述

结果
在这里插入图片描述

自定义分区规则,CustomizePartitioner

我们把这个类的注释打开,同时配置文件里的,partitioner.class配置开启,把消费者组group-id改为mykafka2,再把事务的配置也注释掉

在这里插入图片描述
把上面的方法注释掉,把此方法的注释打开
在这里插入图片描述

发送一个符合分区的消息内容
在这里插入图片描述
因为此时没有1号分区,消息会发送超时

我们可以新建配置类,声明分区数

在这里插入图片描述
然后在发送消息试一下

在这里插入图片描述
后续,刚才我们是手动ack,提交偏移量

我们也可以指定偏移量去消费,方法代码里都有的,这里就截图了
在这里插入图片描述

批量消费

在这里插入图片描述
过滤消息内容再进行消费,异常处理

在这里插入图片描述

消息转发

在这里插入图片描述
定时启动,停止监听器

在这里插入图片描述

生产者如何提高吞吐量

在这里插入图片描述

在这里插入图片描述
参考博客:https://blog.51cto.com/u_14452299/6019881

思考,如果其他中间件或框架,想要自定义配置的话,那可能也会继承它的接口,重写方法,或者声明自己的配置类啥的

文章来源:https://blog.csdn.net/qq_44909430/article/details/135123257
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。