【SpringBoot】在Springboot中怎么设置Kafka自动创建Topic

这篇具有很好参考价值的文章主要介绍了【SpringBoot】在Springboot中怎么设置Kafka自动创建Topic。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

我们在开发过程中使用Kafka会遇到topic太多,自己创建太费劲,所以想一次配置终身使用,自己去创建topic,和flyway一样自己去创建表,今天总结一下配置方式。文章来源地址https://www.toymoban.com/news/detail-515767.html

1.application.yml配置

kafka:
  # 自动创建topic
  topics:
    # topic
    - name: import_vulnera_topic
      #分区数
      num-partitions: 6
      #副本数
      replication-factor: 2
    #  topic
    - name: import_vulnerability_topic
      num-partitions: 6
      replication-factor: 2
    # topic
    - name: import_vulnerability_result_topic
      num-partitions: 6
      replication-factor: 2

2.配置Configuration

import org.apache.kafka.clients.admin.NewTopic;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.context.support.GenericWebApplicationContext;

import javax.annotation.PostConstruct;
import java.util.List;


/**
 * 自动创建topic
 */
@Configuration
@SuppressWarnings("all")
public class TopicAdministrator {
    private final TopicConfigurations configurations;
    private final GenericWebApplicationContext context;

    public TopicAdministrator(TopicConfigurations configurations, GenericWebApplicationContext genericContext) {
        this.configurations = configurations;
        this.context = genericContext;
    }

    @PostConstruct
    public void init() {
        initializeBeans(configurations.getTopics());
    }

    private void initializeBeans(List<TopicConfigurations.Topic> topics) {
        topics.forEach(t -> context.registerBean(t.name, NewTopic.class, t::toNewTopic));
    }


}
import lombok.Data;
import org.apache.kafka.clients.admin.NewTopic;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

import java.util.List;

@Configuration
@ConfigurationProperties(prefix = "kafka")
@Data
public class TopicConfigurations {

    private List<Topic> topics;

    @Data
    static class Topic {
        String name;
        Integer numPartitions = 3;
        Short replicationFactor = 1;

        NewTopic toNewTopic() {
            return new NewTopic(this.name, this.numPartitions, this.replicationFactor);
        }

    }
}

到了这里,关于【SpringBoot】在Springboot中怎么设置Kafka自动创建Topic的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 模仿Activiti工作流自动建表机制,实现Springboot项目启动后自动创建多表关联的数据库与表的方案

    文/朱季谦 熬夜写完,尚有不足,但仍在努力学习与总结中,而您的点赞与关注,是对我最大的鼓励! 在一些本地化项目开发当中,存在这样一种需求,即开发完成的项目,在第一次部署启动时,需能自行构建系统需要的数据库及其对应的数据库表。 若要解决这类需求,其实

    2024年01月24日
    浏览(58)
  • Kafka:自动创建主题

    如果 broker 端配置参数 auto.create.topics.enable 设置为 true(默认值是 true) ,那么当生 产者向一个未创建的主题发送消息时, 会自动创建一个分区数为 num.partitions(默认值为 1)、副本因子为 default.replication.factor(默认值为 1)的主题。 除此之外,当一个消费者 开始从未知主题

    2024年02月07日
    浏览(39)
  • [springboot配置Kafka] springboot配置多个kafka,包含账号密码

    本示例只配置了Consumer没有配置Producer,可参考配置文件_1中注释内容部分 3.1配置文件_1 3.2配置文件_2 4.1 设置消费_1 4.2 设置消费_2

    2024年02月15日
    浏览(88)
  • 【SpringBoot系列】SpringBoot整合Kafka(含源码)

    前言 在现代的微服务架构中,消息队列已经成为了一个不可或缺的组件。 它能够帮助我们在不同的服务之间传递消息,并且能够确保这些消息不会丢失。 在众多的消息队列中,Kafka 是一个非常出色的选择。 它能够处理大量的实时数据,并且提供了强大的持久化能力。 在本

    2024年02月05日
    浏览(43)
  • 【SpringBoot系列】Springboot使用kafka的两种方式

    🤵‍♂️ 个人主页:@香菜的个人主页,加 ischongxin ,备注csdn ✍🏻作者简介:csdn 认证博客专家,游戏开发领域优质创作者,华为云享专家,2021年度华为云年度十佳博主 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂

    2024年02月05日
    浏览(51)
  • 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】—— 如何创建SpringBoot工程

    SpringBoot简化了Spring应用的初始搭建和开发过程。 新建模块 出现java: 错误: 无效的源发行版:18这样的错误, 修改pom.xml文件 出现以下信息,即运行成功 创建application.yml文件 内容:

    2024年01月21日
    浏览(30)
  • 什么是kafka,如何学习kafka,整合SpringBoot

    目录 一、什么是Kafka,如何学习 二、如何整合SpringBoot 三、Kafka的优势   Kafka是一种分布式的消息队列系统,它可以用于处理大量实时数据流 。学习Kafka需要掌握如何安装、配置和运行Kafka集群,以及如何使用Kafka API编写生产者和消费者代码来读写数据。此外,还需要了解Ka

    2024年02月10日
    浏览(39)
  • SpringBoot整合Kafka

    官网:Apache Kafka cmd进入到kafka安装目录: 1:cmd启动zookeeer .binwindowszookeeper-server-start.bat .configzookeeper.properties 2:cmd启动kafka server .binwindowszookeeper-server-start.bat .configzookeeper.properties 3:使用cmd窗口启动一个生产者命令: .binwindowskafka-console-producer.bat --bootstrap-server local

    2024年01月20日
    浏览(38)
  • springboot:整合Kafka

    依赖 yaml配置 简单demo 下面示例创建了一个生产者,发送消息到topic1,消费者监听topic1消费消息。监听器用@KafkaListener注解,topics表示监听的topic,支持同时监听多个,用英文逗号分隔。 KafkaTemplate调用send时 默认采用异步发送 ,如果需要同步获取发送结果,调用get方法 带回调

    2024年02月08日
    浏览(36)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包