java - kafka 消费者组线程的线程顺序在每次启动时都不同
问题描述
我在 Spring Boot 2.1.4 上下文中使用 kafka-streams 2.0.1。CONSUMER-ID 具有以下模式(自动生成的 bei kafka-streams!?):
<client.id>-StreamThread-<threadSequenceNumber>-<consumer|producer|restore-consumer> (source: StreamsConfig.java)
我发现,值:threadSequenceNumber
在我的应用程序启动时并非每次都相同,因为我有两个由 Beans 提供的 StreamThread。我已经尝试通过用@DependsOn
.
每次threadSequenceNumber
更改时,最后的偏移量都会丢失。有人知道我如何强制执行正确的顺序吗?
解决方案
你的观察是正确的。线程序列号由 Kafka Streams 创建。Spring Boot 对此无能为力。
请注意,此行为将在即将发布的 2.3 版本中更改:https ://issues.apache.org/jira/browse/KAFKA-8285
每次当 threadSequenceNumber 更改时,最后的偏移量都会丢失。
为什么这个?偏移量基于application.id
.
推荐阅读
- angular - 具有缓冲功能的角树网格
- android - 通过 Kotlin DSL 实现的 Android 特定风味依赖
- curl - 浏览器无法下载文件,但 curl 命令可以
- laravel - 获取错误的路线而不是在 laravel 中声明的路线来上传文件
- php - 将基于范围条件的嵌套 if-else 转换为 switch 语句
- vue.js - 如何在数据库 vue.js 项目中存储嵌套对象数据。(哪种格式?)
- java - Mockito when 不是模拟而不是调用实际方法
- c# - Microsoft bot 框架 - Bot 频道注册。无法将录制的视频从 Skype 保存到 Azure 存储帐户
- c# - 使用 ASP Dot net MVC 使用外部 Restful Web API
- linux - 如何从特定行 grep 字符串?