SpringBoot3.1.7集成Kafka和Kafka安装

这篇具有很好参考价值的文章主要介绍了SpringBoot3.1.7集成Kafka和Kafka安装。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、背景

我们在很多系统开发都需要用到消息中间件,目前来说Kafka凭借其优秀的性能,使得它的使用率已经是名列前茅了,所以今天我们将它应用到我们的系统

二、版本选择

在使用一个中间件一定要考虑版本的兼容性,否则后面会遇到很多问题,首先我们打开Spring的官网:Spring for Apache Kafka

SpringBoot3.1.7集成Kafka和Kafka安装,软件安装,kafka,分布式,centos,java

SpringBoot3.1.7 版本对应的Kafka版本是3.3.2~3.6.0 

在去官网找一个合适的版本下载安装:Index of /kafka

SpringBoot3.1.7集成Kafka和Kafka安装,软件安装,kafka,分布式,centos,java就选3.5.0 版本吧,

SpringBoot3.1.7集成Kafka和Kafka安装,软件安装,kafka,分布式,centos,java

说明:整个版本号 "2.13-3.5.0" 表示 Kafka 版本 3.5.0,使用 Scala 2.13 编写。

下载完成后将其上传到Centos7上的/usr/local 目录下

SpringBoot3.1.7集成Kafka和Kafka安装,软件安装,kafka,分布式,centos,java

三、单机模式下安装kafka

1 解压并重命名

tar -xzf kafka_2.13-3.5.0.tgz

mv kafka_2.13-3.5.0 kafka

cd kafka

2 使用zookeeper + kafka (不推荐)

Kafka 因为是强依赖zookeeper的,所以必须要先启动zookeeper,不过好在Kafka帮我们把zookeeper的包都准备好了,放在libs目录下面,并且启动脚本也准备好了,我们直接启动就行了

# Start the ZooKeeper service
nohup bin/zookeeper-server-start.sh config/zookeeper.properties >zookeeper.log 2>&1 &

看看内存的占用,还好不多,减掉系统本身的内存183,大约只有60M

SpringBoot3.1.7集成Kafka和Kafka安装,软件安装,kafka,分布式,centos,java

启动kafka

nohup bin/kafka-server-start.sh config/server.properties >kafka.log 2>&1 &

看看Kafka的内存占用,减掉zookeeper和系统本身的内存243,大约占用350M

SpringBoot3.1.7集成Kafka和Kafka安装,软件安装,kafka,分布式,centos,java

3 使用 KRaft 模式启动kafka(推荐)

从 Kafka 2.8.0 版本开始,KRaft 模式已经被正式引入,在 KRaft 模式下,ZooKeeper 不再是必需的,既然kafka团队有意要去除对zookeeper的依赖,那我们也顺应趋势,使用KRaft模式启动

1 修改配置

vim config/kraft/server.properties

# advertised.listeners是 Kafka 代理配置中的一个关键属性,用于告知客户端如何连接到 Kafka 代理。具体而言,它定义了 Kafka 代理向外部公开的网络地址和端口,使得生产者和消费者能够正确建立连接。这里必须填当前虚拟机可以访问的地址

advertised.listeners=PLAINTEXT://192.168.31.114:9092

# 这里需要改成一个非/tmp路径,防止被系统清理

log.dirs=/usr/local/kafka/datas

2 生成集群ID

KAFKA_CLUSTER_ID="$(bin/kafka-storage.sh random-uuid)"

3 格式化日志

bin/kafka-storage.sh format -t $KAFKA_CLUSTER_ID -c config/kraft/server.properties

执行完后,会在我们前面配置的log.dirs=/usr/local/kafka/datas 位置生成一个目录,这个目录会生成初始化的日志文件(不懂可以先不管他,知道kafka kraft模式启动需要这个就行了)

SpringBoot3.1.7集成Kafka和Kafka安装,软件安装,kafka,分布式,centos,java

SpringBoot3.1.7集成Kafka和Kafka安装,软件安装,kafka,分布式,centos,java

4 启动kafka

nohup bin/kafka-server-start.sh config/kraft/server.properties >out.log 2>&1 &

5 看看内存占用521 ,比使用zookeeper+kafka还是省内存些

SpringBoot3.1.7集成Kafka和Kafka安装,软件安装,kafka,分布式,centos,java

4 kafka创建topic

bin/kafka-topics.sh --create --topic quickstart-events --bootstrap-server localhost:9092

5 查看topic信息

bin/kafka-topics.sh --describe --topic quickstart-events --bootstrap-server localhost:9092

四、集成kafka到SpringBoot项目

1 添加Maven依赖

加入kafka与SpringBoot集成的依赖包(SpringBoot帮我们管理了版本号,所以我们只要加入依赖即可,不需要指定版本号)

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

SpringBoot3.1.7集成Kafka和Kafka安装,软件安装,kafka,分布式,centos,java

2 添加配置信息

参考官网:Messaging

spring:
  kafka:
    bootstrap-servers: 192.168.31.114:9092
    consumer:
      group-id: myGroup1

3 编写消费者代码

创建一个KafkaConsumer类,我们就使用前面创建的topic quickstart-events
package com.ychen.goodscenter.fafka;

import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.stereotype.Component;

@Component
public class KafkaConsumer {

    @KafkaListener(topics = "quickstart-events")
    public void processMessage(String content) {
        System.out.println("收到kafka消息: " + content);
    }

}

4 编写生产者代码

package com.ychen.goodscenter.controllers;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class KafkaController {
    @Autowired
    private KafkaTemplate<String, String> kafkaTemplate;

    @PostMapping("/sendMessage")
    public void sendMessage(@RequestParam(value = "message") String message) {
        kafkaTemplate.send("quickstart-events", message);
    }

}

5 postman 测试

SpringBoot3.1.7集成Kafka和Kafka安装,软件安装,kafka,分布式,centos,java

SpringBoot3.1.7集成Kafka和Kafka安装,软件安装,kafka,分布式,centos,java文章来源地址https://www.toymoban.com/news/detail-817713.html

到了这里,关于SpringBoot3.1.7集成Kafka和Kafka安装的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Kafka:springboot集成kafka收发消息

    kafka环境搭建参考Kafka:安装和配置_moreCalm的博客-CSDN博客 1、springboot中引入kafka依赖 2、配置application.yml 传递String类型的消息 3、controller实现消息发送接口 4、component中实现接收类HelloListener  5、测试 浏览器访问该接口并查看控制台         接收成功   传递对象类型的消息

    2024年02月13日
    浏览(42)
  • 八、SpringBoot集成Kafka

    1、修改 SpringBoot 核心配置文件 application.propeties, 添加生产者相关信息 2、创建 controller 从浏览器接收数据, 并写入指定的 topic 1、修改 SpringBoot 核心配置文件 application.propeti 2、创建类消费 Kafka 中指定 topic 的数据 一些配置总结

    2024年02月10日
    浏览(38)
  • SpringBoot——集成Kafka详解

    1.1、引入依赖 1.2、application.yml配置 1.3、简单生产 1.4、简单消费 2.1、带回调的生产者 kafkaTemplate提供了一个回调方法addCallback,我们可以在回调方法中监控消息是否发送成功 或 失败时做补偿处理,有两种写法, 2.2、监听器 Kafka提供了ProducerListener 监听器来异步监听生产者消息

    2024年02月08日
    浏览(45)
  • Springboot Kafka 集成配置

    Springboot 配置使用 Kafka 前言 一、Linux 安装 Kafka 二、构建项目 三、引入依赖 四、配置文件 生产者 yml 方式 Config 方式 消费者 yml 方式 Config 方式 五、开始写代码 生产者 发送 成功回调和异常处理 消费者 接收 异常处理 七、开始测试 测试普通单条消息 测试消费者异常处理 测试

    2024年02月08日
    浏览(47)
  • Springboot 集成kafka

    一、创建项目并导入pom依赖 二、修改application.yml配置 1. producer 生产端的配置 2. consumer 消费端的配置,需要给consumer配置一个group-id 三、生产者生产消息,消费者消费消息 1. 简单消费 producer生产者中使用自动注入的方式创建KafkaTemplate 对象 consumer消费消息,使用@KafkaListener注解

    2024年02月09日
    浏览(32)
  • Kafka集成springboot

    安装kafka,直接到官网下载bin文件,本文使用windows进行使用kafka。 下载之后,第一步,启动zookeeper: zookeeper-server-start.bat ....configzookeeper.properties  第二步,启动kafka: kafka-server-start.bat ....configserver.properties  第三步,在pom中导入依赖: 第四步,修改yml文件,添加配置:

    2024年02月04日
    浏览(36)
  • SpringBoot 集成 Kafka 配置

    自定义分区器 生产者 消费者 配置文件 自定义分区器 生产者 消费者配置 消费数据过滤 消费异常处理类 消费者配置  @KafkaListener

    2024年02月15日
    浏览(37)
  • SpringBoot 集成 Kafka 高级实现

    1、简介         之前博客中记录了直接使用Kafka客户端实现生产者和消费者之间的交互,这种方式通过设置各种参数编码繁琐,因此通过SpringBoot集成Kafka成为一种常用的实现,下面就详细介绍 SpringBoot 是如何和Kafka进行集成的,本文主要参考官网进行学习(Messaging)。 2、引

    2024年01月16日
    浏览(45)
  • springboot集成kafka消费数据

    1.1.1.生产者分区策略 轮询策略:Round-robin 策略,即顺序分配,轮询策略有非常优秀的负载均衡表 现,它总是能保证消息最大限度地被平均分配到所有分区上,故默认情况下它是最合理的分区策略。(默认、常用) 随机策略:Randomness 策略。所谓随机就是我们随意地将消息放

    2024年01月19日
    浏览(40)
  • SpringBoot集成kafka全面实战

    本文是SpringBoot+Kafka的实战讲解,如果对kafka的架构原理还不了解的读者,建议先看一下《大白话kafka架构原理》、《秒懂kafka HA(高可用)》两篇文章。 一、生产者实践 普通生产者 带回调的生产者 自定义分区器 kafka事务提交 二、消费者实践 简单消费 指定topic、partition、of

    2024年02月15日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包