k8s上的SCDF:向Kafka发送消息时的生产者异常 - ticktock + ticktock.time主题上没有消息

时间:2017-08-03 10:41:52

标签: kubernetes spring-cloud-dataflow

尝试将消息发送到 Kafka 时,计时器应用程序会抛出每秒错误:

2017-08-03 10:20:58,805 ERROR kafka-producer-network-thread | producer-2 o.s.k.s.LoggingProducerListener:76 - Exception thrown when sending a message with key='null' and payload='{-1, 2, 11, 99, 111, 110, 116, 101, 110, 116, 84, 121, 112, 101, 0, 0, 0, 12, 34, 116, 101, 120, 116...' to topic metrics: org.apache.kafka.common.errors.TimeoutException: Expiring 2 record(s) for metrics-0 due to 30009 ms has passed since batch creation plus linger time

在我看来,这些将是指标主题的记录,但同时 Kafka 中的ticktock.timer主题中没有记录。 我猜这个分区键是null可能是问题。但我不太清楚为什么它应该使用一些非默认的分区设置。

这是我部署的内容:

dataflow:> app register --type sink --name log --uri docker://springcloudstream/log-sink-kafka-10:1.2.0.RELEASE --metadata-uri maven://org.springframework.cloud.stream.app:log-sink-kafka-10:jar:metadata:1.2.0.RELEASE dataflow:> app register --type source --name time --uri docker://springcloudstream/time-source-kafka-10:1.2.0.RELEASE --metadata-uri maven://org.springframework.cloud.stream.app:time-source-kafka-10:jar:metadata:1.2.0.RELEASE dataflow:> stream create --name ticktock --definition "time | log" --deploy

这是我的设置:

spring-cloud-dataflow-server-kubernetes: 1.3.0.BUILD-SNAPSHOT
Spring Cloud Data Flow Core: 1.3.0.BUILD-SNAPSHOT
Spring Cloud Dataflow UI: 1.3.0.BUILD-SNAPSHOT

我正在使用 Kafka 10 BTW。

可能是什么问题?

非常感谢您的支持!

1 个答案:

答案 0 :(得分:0)

时间源应用程序的日志让生产者发布到metrics主题看起来很奇怪。您是否有机会将此主题配置为此流的一部分?

我假设流部署已经创建了主题ticktock.time,如果有任何其他日志信息(可能是一些调试日志),您可以分享时间源应用程序正在发生的事情。

此外,在快速搜索之后,看起来Kafka Producer批处理的超时异常确实在某些kubernetes环境中出现,你认为你遇到了其中一个吗?