springBoot2.x集成kafka

本文介绍了在SpringBoot2.x项目中集成Kafka的背景、依赖、配置参数、生产者和消费者实现,以及解决外部生产者创建主题时SpringBoot消费者无法立即分区消费的问题。通过KafkaListener注解实现消费者监听,强调了配置spring.kafka.consumer.auto-offset-reset=earliest的重要性。
摘要由CSDN通过智能技术生成

背景

最近在做一个物联网paas项目,实时设备预警结合kafka流式实时计算的特定,采用springBoot结合kafka来完成
kafka环境搭建——kafka基本命令及环境搭建

依赖

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

配置参数

#kafka配置
#broker地址,多个使用英文逗号分隔
spring.kafka.bootstrap-servers=127.0.0.1:9092
#指定序列号与反序列化
spring.kafka.consumer.key-deserializer=org.apache.kafka.common.serialization.StringDeserializer
spring.kafka.consumer.value-deserializer=org.apache.kafka.common.serialization.StringDeserializer
spring.kafka.consumer.key-serializer=org.apache.kafka.common.serialization.StringSerializer
spring.kafka.consumer.value-serializer=org.apache.kafka.common.serialization.StringSerializer
#要使用消费者必须指定group-id
spring.kafka.consumer.group-id=server
spring.kafka.consumer.enable-auto-commit=true
spring.kafka.consumer.auto-commit-interval=1000
#如果消费的topic不存在,是否在启动时抛出异常,false为不抛出
spring.kafka.listener.missing-topics-fatal=false
#kafka定时检查的通配符,发现新分区需要5分钟的间隔
#默认的offset-reset是latest,导致分配分区前的间隔时间内,新分区的消息会丢失
#设置为earliest从头消费该分区数据,即使新分区,也会消费间隔时间内产生的旧消息
spring.kafka.consumer.auto-offset-reset=earliest

生产者

自动注入springboot自动配置的KafkaTemplate,其中包含几个常用的生产方法,key可有可无,主要是为了优化分区,相同key(不为null)的消息会分配到相同分区

	//指定topic和value
	public ListenableFuture<SendResult<K, V>> send(String topic, @Nullable V data
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值