kafka Streams消费最新的消息

本文介绍了如何通过调整Kafka Streams的配置,尤其是`cache.max.bytes.buffering`和`receive.buffer.bytes`参数,来提升消费速度。原本单线程每秒只能消费3000条消息,优化后提升到每秒30000条,满足了更高的消息处理需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里写自定义目录标题


先说结论:kafka Streams组件并不支持通过制定的参数配置进行直接消费最新消息,即使是全新的消费者组,也就是参数 application-id设置为从来没用过的,也无法消费最新的消息,但是从另一个角度去思考,如果把就消息都消费完了,那么该 application-id的消费者不就可以消费到最新的消息了吗?是的,该思路是目前比较有效的手段,做法是需要在业务逻辑上兼容处理过去的消息,待kafka streams应用消费完旧消息,后续监听到的消息就为新消息。

引入maven

<dependencies>
    <dependency>
        <groupId>org.apache.kafka</groupId>
        <artifactId>kafka_2.13</artifactId>
        <version>2.8.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.kafka</groupId>
        <artifactId>kafka-streams</artifactId>
        <version>2.8.1</version>
    </dependency>
</dependencies>

问题

虽然消费了旧消息就可以消费新消息,但是在有些场景下,默认的消费配置并不能跟得上生产的速度,或者需要消费很久才能把堆积的消息消费完,因此在一些配置上需要做一些变动,不适用默认配置项。
经实测:更改一些默认配置项可以改变消费速度【接受消息的容量】,从单线程1s3000条消息消费提升至1s30000条左右的消息,由于当时该改动已经符合我的需求,便没有将配置值设置的特别大。

基础配置建立

这里进行了简单的配置,其中比较重要的是后续的两个参数

import org.apache.kafka.common.serialization.Serdes;
import org.apa
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值