Spring Boot集成Kafka详解

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

Spring Boot是一个用于构建独立的、生产级的Java应用程序的框架,而Kafka是一种高吞吐量的分布式发布订阅消息系统。在本文中,我们将详细解释如何在Spring Boot项目中集成Kafka。

Spring Boot集成Kafka详解,Java,spring boot,kafka

1. 添加依赖

首先,我们需要在项目的pom.xml文件中添加Spring Boot和Kafka的依赖。

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.kafka</groupId>
        <artifactId>spring-kafka</artifactId>
    </dependency>
</dependencies>

2. 配置Kafka

接下来,我们需要在application.properties文件中配置Kafka的相关参数。

# Kafka服务器地址
spring.kafka.bootstrap-servers=localhost:9092

# 消费者组ID
spring.kafka.consumer.group-id=myGroup

# 消费者自动提交偏移量
spring.kafka.consumer.enable-auto-commit=true

3. 创建Kafka生产者

现在我们可以创建一个Kafka生产者来发送消息。首先,我们需要注入KafkaTemplate。

@Autowired
private KafkaTemplate<String, String> kafkaTemplate;

然后,我们可以创建一个方法来发送消息。

public void sendMessage(String topic, String message) {
    kafkaTemplate.send(topic, message);
}

4. 创建Kafka消费者

同样,我们也可以创建一个Kafka消费者来接收消息。首先,我们需要注入ConsumerFactory和ConsumerConfig。

@Autowired
private ConsumerFactory<String, String> consumerFactory;
@Autowired
private ConsumerConfig<String, String> consumerConfig;

然后,我们可以创建一个方法来接收消息。

public void consumeMessages() {
    this.consumer = consumerFactory.createConsumer(consumerConfig);
    this.consumer.subscribe(Arrays.asList("myTopic"));
    while (true) {
        ConsumerRecords<String, String> records = consumer.poll(Duration.ofMillis(100));
        for (ConsumerRecord<String, String> record : records) {
            System.out.printf("offset = %d, key = %s, value = %s%n", record.offset(), record.key(), record.value());
        }
    }
}

5. 测试Kafka集成

最后,我们可以创建一个主方法来测试我们的Kafka集成。首先,我们需要发送一条消息,然后消费这条消息。

@SpringBootApplication
public class KafkaDemoApplication implements CommandLineRunner {
    @Autowired
    private KafkaTemplate<String, String> kafkaTemplate;
    @Autowired
    private ConsumerFactory<String, String> consumerFactory;
    @Autowired
    private ConsumerConfig<String, String> consumerConfig;
    private final AtomicInteger count = new AtomicInteger();  //记录每个分区的消息数,用于后续统计各分区的消息总数。

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

    @Override
    public void run(String... args) throws Exception {
        // 向主题"test"发送消息
        sendMessage("test", "hello");
        // 启动消费者
        consumeMessages();
    }

    /**
     * 发送消息到Kafka
     */
    public void sendMessage(String topic, String message) {
        kafkaTemplate.send(topic, message);
        count.incrementAndGet();
    }

    /**
     * 从Kafka消费消息
     */
    public void consumeMessages() {
        this.consumer = consumerFactory.createConsumer(consumerConfig);
        this.consumer.subscribe(Arrays.asList("test"));
        while (true) {
            ConsumerRecords<String, String> records = consumer.poll(Duration.ofMillis(100));
            for (ConsumerRecord<String, String> record : records) {
                System.out.printf("offset = %d, key = %s, value = %s%n", record.offset(), record.key(), record.value());
            }
        }
    }
}

这是Spring Boot集成Kafka栗子,在开发中根据实际情况调整。文章来源地址https://www.toymoban.com/news/detail-709349.html

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

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

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

相关文章

  • 【Spring Boot】集成Kafka实现消息发送和订阅

    最近忙着搞低代码开发,好久没新建spring项目了,结果今天心血来潮准备建个springboot项目 注意Type选Maven,java选8,其他默认 点下一步后完成就新建了一个spring boot项目,配置下Maven环境,主要是settings.xml文件,里面要包含阿里云仓库,不然可能依赖下载不下来 在maven配置没问

    2024年02月09日
    浏览(47)
  • 在Spring Boot微服务集成kafka-clients操作Kafka集群

    记录 :463 场景 :在Spring Boot微服务集成kafka-clients-3.0.0操作Kafka集群。使用kafka-clients的原生KafkaProducer操作Kafka集群生产者Producer。使用kafka-clients的原生KafkaConsumer操作Kafka集群的消费者Consumer。 版本 :JDK 1.8,Spring Boot 2.6.3,kafka_2.12-2.8.0,kafka-clients-3.0.0。 Kafka集群安装 :https://bl

    2024年02月09日
    浏览(47)
  • 在Spring Boot微服务集成Kafka客户端(kafka-clients)操作Kafka

    记录 :459 场景 :在Spring Boot微服务集成Kafka客户端kafka-clients-3.0.0操作Kafka。使用kafka-clients的原生KafkaProducer操作Kafka生产者Producer。使用kafka-clients的原生KafkaConsumer操作Kafka的消费者Consumer。 版本 :JDK 1.8,Spring Boot 2.6.3,kafka_2.12-2.8.0,kafka-clients-3.0.0。 Kafka安装 :https://blog.csdn.ne

    2024年02月12日
    浏览(48)
  • kafka--技术文档--spring-boot集成基础简单使用

            查阅了很多资料了解到,使用了spring-boot中整合的kafka的使用是被封装好的。也就是说这些使用其实和在linux中的使用kafka代码的使用其实没有太大关系。但是逻辑是一样的。这点要注意! 核心配置为: 如果在下面规定了spring-boot的版本那么就不需要再使用版本号,如

    2024年02月11日
    浏览(46)
  • 使用Spring Boot集成中间件:Kafka的高级使用案例讲解

    在实际应用中,Kafka作为一种强大的分布式消息系统,广泛应用于实时数据处理和消息传递。本文将通过一个全面的使用案例,详细介绍如何使用Spring Boot集成Kafka,并展示其在实际场景中的应用。 在开始之前,我们需要确保已经完成以下准备工作: 安装并启动Kafka集群 创建

    2024年02月01日
    浏览(51)
  • Spring boot使用Kafka Java反序列化漏洞 CVE-2023-34040

    背景:公司项目扫描到 Spring-Kafka上使用通配符模式匹配进行的安全绕过漏洞 CVE-2023-20873 中等风险 | 2023年8月23日 | CVE-2023-34040 在Spring for Apache Kafka 3.0.9及更早版本以及2.9.10及更早版本中,存在可能的反序列化攻击向量,但只有在应用了不常见的配置时才会出现。攻击者必须在

    2024年02月07日
    浏览(50)
  • Spring Boot 整合 Kafka

    环境:自行创建 Spring Boot 项目,添加测试依赖,并启动 Zookeeper 和 kafka 服务。 注意:Zookeeper 默认好像占用 8080 端口,自己注意端口占用问题。 1. 添加依赖 2. 添加配置 3. 创建消息生产者 4. 创建消息消费者 5. 消息发送测试

    2023年04月11日
    浏览(35)
  • Spring Boot Kafka Example

    作者:禅与计算机程序设计艺术 Kafka是一个分布式消息系统,它可以实现消息的持久化、高并发量处理以及实时的可靠传输。相比于其他消息队列中间件(例如RabbitMQ、ActiveMQ),其最大的优点在于它提供的跨越语言的API支持,支持多种编程语言的客户端。作为一种轻量级的分

    2024年02月07日
    浏览(42)
  • Spring Boot+Kafka实战生产级Kafka消费组

    作者:禅与计算机程序设计艺术 Kafka是一个开源分布式消息系统,最初由LinkedIn开发,之后成为Apache项目的一部分。Kafka主要用于大数据实时流处理,具有低延迟、高吞吐量等特点。本文将会从基本概念、术语说明、原理及应用场景三个方面对Kafka进行详细介绍。 Kafka作为一个

    2024年02月10日
    浏览(34)
  • Spring Boot进阶(27):Spring Boot 整合 kafka(环境搭建+演示) | 超级详细,建议收藏

           在现代互联网应用中,消息驱动已经成为一种不可或缺的开发模式。而Kafka作为一款高性能的分布式消息系统,已经成为很多公司在消息驱动架构中的首选工具。本篇文章将介绍如何使用Spring Boot和Kafka快速构建消息驱动应用,让你在开发过程中轻松应对高并发的消息

    2024年02月05日
    浏览(44)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包