Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Kafka Streams 2.5.0需要输入主题

Kafka Streams 2.5.0需要输入主题
EN

Stack Overflow用户
提问于 2020-04-21 11:31:29
回答 4查看 2.7K关注 0票数 6

从Kafka Streams 2.5.0开始,似乎拓扑必须包含一个输入主题。在Kafka 2.4.1 (及更早版本)中,情况并非如此。

我有一个应用程序,其中的拓扑只是创建一些全局状态存储,这些存储从其他应用程序写入的主题中读取数据。

在Kafka 2.5.0中,我得到了这个错误:

代码语言:javascript
运行
AI代码解释
复制
13:24:27.161 [<redacted>-7cf1b5c9-4a6e-4bf2-9f77-f7f85f2df3bb-StreamThread-1] ERROR o.a.k.s.p.internals.StreamThread - stream-thread [<redacted>-7cf1b5c9-4a6e-4bf2-9f77-f7f85f2df3bb-StreamThread-1] Encountered the following error during processing:
java.lang.IllegalStateException: Consumer is not subscribed to any topics or assigned any partitions
    at org.apache.kafka.clients.consumer.KafkaConsumer.poll(KafkaConsumer.java:1228)
    at org.apache.kafka.clients.consumer.KafkaConsumer.poll(KafkaConsumer.java:1216)
    at org.apache.kafka.streams.processor.internals.StreamThread.pollRequests(StreamThread.java:853)
    at org.apache.kafka.streams.processor.internals.StreamThread.runOnce(StreamThread.java:753)
    at org.apache.kafka.streams.processor.internals.StreamThread.runLoop(StreamThread.java:697)
    at org.apache.kafka.streams.processor.internals.StreamThread.run(StreamThread.java:670)

如果我添加一个虚拟输入主题(例如通过streamsBuilder.stream(Pattern.compile("hack"));),应用程序启动正常。

这是意料之中的行为,还是Kafka Streams 2.5.0中的意外变化?

更多细节:上面的用例可能看起来有点奇怪,我不得不同意。这样做的原因首先是交互式查询的缺点,即应用程序在一段时间内无法回答查询。我看到这个问题已经通过KIP-535在Kafka Streans 2.5.0中得到了解决,这真是太棒了。我希望以后再研究一下IQ。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2020-05-11 18:45:33

当我们切换(回到)使用collection subscription时,在2.5.0中引入了一个回归。刚刚合并了一个fix,所以当它们发布时,你应该升级到2.5.1或2.6。

票数 3
EN

Stack Overflow用户

发布于 2020-04-27 16:05:27

如果您的拓扑中没有任何非全局部分,那么就没有理由使用任何StreamThreads。这意味着您可以通过将num.threads设置为0来轻松解决此问题--可以说,您无论如何都应该这样做,以避免不必要的开销和组协调。当检测到全局拓扑时,默认情况下将其设置为零是一种“修复”方法,因此您不需要等待

票数 3
EN

Stack Overflow用户

发布于 2020-04-22 11:56:16

代码语言:javascript
运行
AI代码解释
复制
private void subscribeConsumer() {
    if (builder.usesPatternSubscription()) {
        // this is old behaviour - is there a config that will revert to this??
        consumer.subscribe(builder.sourceTopicPattern(), rebalanceListener);
    } else {
        consumer.subscribe(builder.sourceTopicCollection(), rebalanceListener);
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61342530

复制
相关文章
初探Kafka Streams
Kafka在0.10版本推出了Stream API,提供了对存储在Kafka内的数据进行流式处理和分析的能力。
林一
2018/07/24
1.2K0
初探Kafka Streams
Kafka Streams - 抑制
在这篇文章中,我将解释Kafka Streams抑制的概念。尽管它看起来很容易理解,但还是有一些内在的问题/事情是必须要了解的。这是我上一篇博文CDC分析的延续。
大数据学习与分享
2022/12/12
1.6K0
Kafka Streams - 抑制
快速学习-Kafka Streams
Kafka Streams。Apache Kafka开源项目的一个组成部分。是一个功能强大,易于使用的库。用于在Kafka上构建高可分布式、拓展性,容错的应用程序。
cwl_java
2020/02/20
8460
Kafka Streams之WordCount
(1)Stream 从topic中取出每一条数据记录 (<key, value>格式): <null, “Spark and spark”>
全栈程序员站长
2022/11/16
6040
Kafka入门实战教程(7):Kafka Streams
流处理平台(Streaming Systems)是处理无限数据集(Unbounded Dataset)的数据处理引擎,而流处理是与批处理(Batch Processing)相对应的。所谓的无线数据,指的是数据永远没有尽头。而流处理平台就是专门处理这种数据集的系统或框架。下图生动形象地展示了流处理和批处理的区别:
Edison Zhou
2022/09/09
4.1K0
Kafka入门实战教程(7):Kafka Streams
Kafka Streams 核心讲解
•Kafka Stream 提供了一个非常简单而轻量的 Library,它可以非常方便地嵌入任意Java应用中,也可以任意方式打包和部署•除了 Kafka 外,无任何外部依赖•充分利用 Kafka 分区机制实现水平扩展和顺序性保证•通过可容错的 state store 实现高效的状态操作(如 windowed join 和aggregation)•支持正好一次处理语义•提供记录级的处理能力,从而实现毫秒级的低延迟•支持基于事件时间的窗口操作,并且可处理晚到的数据(late arrival of records)•同时提供底层的处理原语 Processor(类似于 Storm 的 spout 和 bolt),以及高层抽象的DSL(类似于 Spark 的 map/group/reduce)
java达人
2021/06/21
2.7K0
Kafka Streams 核心讲解
kafka streams的join实例
这里使用的是inner join,也有left join,也有outer join。如果要记录在时间窗口没有匹配上的记录,可以使用outer join,额外存储下来,然后再根据已经匹配的记录再过滤一次。
code4it
2018/09/17
1.5K0
Kafka 2.5.0发布——弃用对Scala2.11的支持
下载地址:https://kafka.apache.org/downloads#2.5.0
大数据流动
2020/04/24
2.1K0
Kafka 2.5.0发布——弃用对Scala2.11的支持
解决安装WordPress主题及插件需要输入FTP问题
安装一个WordPress好像挺简单,但是默认主题不喜欢,想更换一个,无奈本地可以更换,但是服务器更换的时候需要设置FTP 。OK,设置呗,好像我的用户名密码之类的都是正确的,就是不让我通过,因此,找了一下解决方案
hedeqiang
2019/12/17
3.1K0
自定义kafka streams的processor
本文来解析一下kafka streams的KStreamBuilder以及举例如何自定义kafka streams的processor
code4it
2018/09/17
8800
最简单流处理引擎——Kafka Streams简介
Kafka在0.10.0.0版本以前的定位是分布式,分区化的,带备份机制的日志提交服务。而kafka在这之前也没有提供数据处理的顾服务。大家的流处理计算主要是还是依赖于Storm,Spark Streaming,Flink等流式处理框架。
用户6070864
2019/09/05
1.6K0
最简单流处理引擎——Kafka Streams简介
最简单流处理引擎——Kafka Streams简介
Storm,Spark Streaming,Flink流处理的三驾马车各有各的优势.
大数据流动
2019/09/11
2.2K0
最简单流处理引擎——Kafka Streams简介
kafka手动监听主题
很多人作kafka消费时,都快速的使用注解@KafkaListener进行监听。 但我现在有个需求,是要动态的手动监听。 实现代码如下: 1.手动编写监听类
星痕
2020/05/18
8040
Kafka 主题管理 API
以下是一个操作Kafka Topic 的工具类,其中方法设计到:创建主题、删除主题、修改主题配置、删除出题配置、增加分区、分区副本重分配、获取主题元数据以及打印主题元数据信息。
CoderJed
2018/09/13
1.6K0
kafka删除主题_kafka从头消费topic数据
转自https://www.cnblogs.com/xiaodf/p/10710136.html
全栈程序员站长
2022/11/03
6110
Kafka核心API——Stream API
Kafka Stream是Apache Kafka从0.10版本引入的一个新Feature,它提供了对存储于Kafka内的数据进行流式处理和分析的功能。简而言之,Kafka Stream就是一个用来做流计算的类库,与Storm、Spark Streaming、Flink的作用类似,但要轻量得多。
端碗吹水
2020/09/23
3.7K0
Kafka核心API——Stream API
Kafka 删除主题流程分析
之前有个 Kafka 集群的每个节点的挂载磁盘多达 20+ 个,平均每个磁盘约 1T,每个节点的分区日志被平均分配到这些磁盘中,但由于每个分区的数据不一致,而集群节点 log.retention.bytes 这个参数的默认值是 -1,也就是没有任何限制,因此 Kafka 的日志删除日志依赖 log.retention.hours 参数来删除,因此会出现日志未过期,磁盘写满的情况。
张乘辉
2019/11/11
1.2K0
Kafka 删除主题流程分析
kafka的主题和分区
kafka支持修改topic,支持增加分区,不支持减少分区,这个时候消息队列消息的顺序会受影响,修改时需要三思,另外一个思路是新建一个topic,双写,进行数据切换
李子健
2023/07/01
2540
学习kafka教程(三)
Kafka流通过构建Kafka生产者和消费者库,并利用Kafka的本地功能来提供数据并行性、分布式协调、容错和操作简单性,从而简化了应用程序开发。 下图展示了一个使用Kafka Streams库的应用程序的结构。
用户3467126
2019/07/03
9760
Kafka主题,分区,副本介绍
今天分享一下kafka的主题(topic),分区(partition)和副本(replication),主题是Kafka中很重要的部分,消息的生产和消费都要以主题为基础,一个主题可以对应多个分区,一个分区属于某个主题,一个分区又可以对应多个副本,副本分为leader和follower。
小四的技术之旅
2023/03/14
2.6K0
Kafka主题,分区,副本介绍

相似问题

Kafka Streams内部主题命名

52

Kafka Streams内部主题重定向

121

Kafka Streams死信队列/隔离主题

15

kafka streams in runtime change in/out主题

110

Kafka Streams -共享的变更主题

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档