【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项目启动后自动创建多表关联的数据库与表的方案

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

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

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

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

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

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

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

    【SpringBoot系列】SpringBoot整合Kafka(含源码)

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

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

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

    2024年02月05日
    浏览(11)
  • Kafka:springboot集成kafka收发消息

    Kafka:springboot集成kafka收发消息

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

    2024年02月13日
    浏览(13)
  • 【SpringBoot】—— 如何创建SpringBoot工程

    【SpringBoot】—— 如何创建SpringBoot工程

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

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

    什么是kafka,如何学习kafka,整合SpringBoot

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

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

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

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

    Springboot 集成kafka

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

    2024年02月09日
    浏览(11)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包