我创建了一个由3个经纪人和以下详细信息组成的kafka集群:
以下是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推送的过去消息。