前言

日常项目中需要使用两个或以上kafka的数据源地址,面向百度编程的过程中发现,几个数据源就需要配置几个配置文件,并没有优雅的解决方式,于是开发了一款基于Spring-Kafka的kafka-spring-boot-starter除了支持原生配置外,还增加了多数据源配置。

安装

Starter已上传至中央仓库,pom文件中引用即可。

<dependency>
  <groupId>io.github.pg-liudong</groupId>
  <artifactId>kafka-spring-boot-starter</artifactId>
  <version>1.0.0</version>
</dependency>

特征

  • 支持原生: 支持spring-kafka原生配置。
spring:
  kafka:
    bootstrap-servers: localhost:9092
    consumer:
      key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
      value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
      auto-offset-reset: earliest
    producer:
      key-serializer: org.apache.kafka.common.serialization.StringSerializer
      value-serializer: org.apache.kafka.common.serialization.StringSerializer

  • 支持多数据源: 支持多数据源配置。
spring:
  kafka:
    multiple:
      # Primary data source is not allowed to be empty.
      primary: ds1  
      consumer:
        key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
        value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
        auto-offset-reset: latest
      producer:
        key-serializer: org.apache.kafka.common.serialization.StringSerializer
        value-serializer: org.apache.kafka.common.serialization.StringSerializer
      datasource:
        ds1:
          bootstrap-servers: localhost:9092
          consumer:
            # Consumer concurrent kafka listener container factory is not allowed to be empty.
            container-factory: ds1KafkaListenerContainerFactory  
            auto-offset-reset: earliest
          producer:
            kafka-template: ds1KafkaTemplate
        ds2:
          bootstrap-servers: localhost:9093
          consumer:
            container-factory: ds2KafkaListenerContainerFactory
            auto-offset-reset: earliest
          producer:
            # Producer kafka template bean name is not allowed to be empty.
            kafka-template: ds2KafkaTemplate

源码

源码以及示例项目,已上传至github,有兴趣的小伙伴可以在微信公众号「爪哇驿站」后台发送“kafka”领取。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐