最直接的方法是修改拓扑结构,使其能够编写无法快速处理到第二个溢出的Kafka主题的Kafka消息,因为在最坏的情况下,您将需要双倍的容量。输入和输出Kafka主题名称都是可配置的。也许您会有一个阈值积压延迟来自动触发此写入,或者您可能会在拓扑中有一个标志,您可以在拓扑运行时外部设置该标志。这是一个设计细节,您可以通过它的操作含义。
这为您提供了一个Flink拓扑,它可以及时地处理一些最大数量的消息,同时将无法处理的其余消息写入第二个Kafka主题。然后,您可以运行相同Flink拓扑的第二个实例,该实例从该次要主题读取并在必要时写入第三个主题。如果对溢出主题的写入发生在拓扑处理的早期,您可以通过Kafka以最小的延迟将几个实例链接在一起,而不必重新配置和重新启动任何拓扑。
在构建Kafka Streams拓扑时,可以通过两种不同的方式对多个主题的读取进行建模: 读取具有相同源节点的所有主题。 选项1相对于选项2是否有相对优势,反之亦然?所有主题都包含相同类型的数据,并具有相同的数据处理逻辑。
我见过,但对于我的(简单的)用例来说,它似乎有些过头了。 我也知道,但我不想仅仅为此编写和维护代码。 我的问题是:有没有一种方法可以用kafka原生工具实现这个主题调度,而不用自己写一个Kafka-Consumer/Producer?
我有2个Kafka的主题流完全相同的内容从不同的来源,所以我可以有高可用性的情况下,其中一个来源失败。我正在尝试使用Kafka Streams0.10.1.0将2个主题合并为1个输出主题,这样我就不会错过任何关于失败的消息,并且当所有源都启动时没有重复的消息。 当使用KStream的方法时,其中一个主题可以毫无问题地关闭(次要主题),但是当主主题关闭时,将不会向输出主题发送任何内容。这似乎是因为,
我正在使用AVRO文件来生成和使用消息,我想知道我是否可以使用相同的AVRO文件来处理多个主题,例如,在生产者中使用不同的“name”属性,在消费者中使用特定的“name”属性。 多谢.斯特凡诺
我在kafka-连接中创建了两个kafka连接器,它们使用相同的连接器类,但它们听的主题不同。 当我在节点上启动进程时,两个连接器最终都会在此进程上创建任务。但是,我希望一个节点只处理一个连接器/主题。如何将主题/连接器限制为单个节点?我在connect-distributed.properties中没有看到任何配置,其中进程可以指定使用哪个连接器。 谢谢。
我正在使用Spring Cloud Stream Kafka Binder。我有以下Kafka活页夹函数。 在yml中,我有: 如果我想从同一个功能向两个不同的主题发送数据,我需要做什么?