当前位置: 首页 > 知识库问答 >
问题:

我可以使用Kafka Streams/构建一个“空拓扑”吗?

邬令
2023-03-14

我们有一个Spring Boot Kafka Streams处理器。由于各种原因,我们可能会遇到需要进程启动和运行的情况,但是没有我们希望订阅的主题。在这种情况下,我们只希望进程“Hibernate”,因为其他活动/环境检查器依赖于它的运行。此外,它是RedHat OCP集群的一部分,我们不希望pod不断地执行崩溃退避循环。我完全理解,在使用有效主题重新启动之前,它永远不会真正做任何事情,但没关系。

如果我们在没有主题的情况下启动它,我们会收到以下消息:<code>未能启动bean‘kStreamBuilder‘;嵌套异常为org.springframework.kafka。KafkaException:无法启动流:;嵌套的异常是org.apache.cafka.streams.errors。TopologyException:无效拓扑:拓扑没有流线程和全局线程,必须订阅至少一个源主题或全局表。

在测试环境中,我们可以创建一个从未编写过的主题,但在生产中,我们没有这种灵活性,所以编程解决方案是最好的。理想情况下,我认为,如果有某种类型的“空主题”抽象(Kafka“/dev/null”),这将是代码中最干净的。

最佳实践,请?

共有1个答案

杜阳泽
2023-03-14

您可以将< code > StreamsBuilderFactoryBean 上的< code>autoStartup属性设置为< code>false,并且如果您至少有一个流,则仅< code>start()它。

如果使用Spring Boot,它可以作为属性使用:

https://docs . spring . io/spring-boot/docs/current/reference/html/application-properties . html # application-properties . integration . spring . Kafka . streams . auto-startup

 类似资料:
  • 我正在尝试使用Eclipse在Linux中运行Storm启动示例。我收到以下错误和函数从未被调用。 错误: 我的拓扑类: 我正在虚拟机环境中工作,所以不知道这是否是由于安装了Zookeeper。有什么想法吗?

  • 众所周知,Storm拓扑可以有多个喷口/螺栓。当我们发布Storm拓扑时,我们必须定义喷口和螺栓之间的依赖关系。我想知道我可以在拓扑运行时注册新螺栓吗?

  • 不能使用构造函数(new)显式创建[org.quadrisk.TopLogy.TenderEventspout2]的实例。您必须使用“actor of”工厂方法之一来创建新的actor。请参阅文档。 但是按照建议使用actorOf创建一个actor,会返回一个ActorRef类型的对象。我该怎么做。提前道谢。

  • 我的公司使用SBT/Scala,所以我的目标是用这些而不是Maven/Java开发我们自定义的NiFi处理器。我遇到的问题是我不知道如何用SBT生成NAR文件。NiFi有一个nifi-nar-maven-plugin包插件,它使用该插件将所有处理器依赖项打包到一个jar(nar)中。是否存在使用SBT构建NAR的问题? 我考虑过的选择: 构建一个胖罐子(例如:https://github.com/

  • 我正在研究一个storm拓扑,需要为不同的客户端位置构建多个拓扑。 谢谢你的回复。