Kafka Streams-长时间间隔后重新启动后无法读取主题中过去的消息的流

时间:2018-07-11 14:37:08

标签: apache-kafka apache-kafka-streams

我创建了一个由3个经纪人和以下详细信息组成的kafka集群:

  1. 创建了3个主题(“ initial1”,“ initial2”,“ final”),每个主题的复制因子为3,分区为2。
  2. 创建了2个生产者,生产者1推送到“ initial1”主题,生产者2推送到“ initial2”主题。
  3. 创建了一个Streams应用程序stream1-以使用左联接从“ initial1”和“ initial2”主题读取消息,对其进行处理并写入“ final”主题。

以下是Stream配置:

kafka.sourcetopic.one=initial1
kafka.sourcetopic.two=initial2
kafka.desttopic.one=final
kafka.stream.id=Stream11
kafka.stream.state.dir=kafka-streams-11
kafka.stream.server=PLAINTEXT://x1.x2.x3.x4:9092, PLAINTEXT://x1.x2.x3.x4:9093, PLAINTEXT://x1.x2.x3.x4:9094
kafka.auto-commit=true
kafka.auto-commit-interval=10
kafka.auto-offset-reset=latest
kafka.retries=2
kafka.retries.backoff.ms=10
kafka.request.timeout_ms=900000
kafka.timewindow_ms=36000000
kafka.schema.registry.url=http://x1.x2.x3.x4:8081

场景1:如果producer1和stream1都在运行

当producer1将消息(例如1000条消息)推送到“ initial1”主题时,stream1可以读取它。

方案2:如果producer1和stream1已停止。经过很长的间隔(例如10个小时)之后,生产者1首先启动,并推送1000条消息。推送1000条消息后,将启动stream1。

stream1无法读取Producer1推送的那1000条消息。

查询

为什么在长时间间隔后重新启动时stream1无法读取过去的消息?如果流在很小的间隔(例如5分钟)内重新启动,则它能够读取生产者1推送的过去消息。

0 个答案:

没有答案