我已经建立了一个本地Kafka0.10 + Flink1.4环境。
我将以下代码用于Kafka主题的消费者数据:
val tableSource:KafkaTableSource = Kafka010JsonTableSource.builder()
.forTopic(kafkaConfig.topic)
.withKafkaProperties(props)
.withSchema(dynamicJsonSchema)
.withRowtimeAttribute(enventTimeFieldName,new ExistingField(enventTimeFieldName), new BoundedOutOfOrderTimestamps(30000L))
.build()
tableEnv.registerTableSource(tableName, tableSource)
val tableResult:Table = tableEnv.sqlQuery(sql)
执行此代码后,始终会发现警告消息:
对于组taxiDataGroup,偏移{taxiData-0 = OffsetAndMetadata {offset = 728461,metadata =''}}的自动提交失败: 由于该组已经重新平衡并将分区分配给另一个成员,因此无法完成提交。 这意味着后续调用poll()的时间长于配置的max.poll.interval.ms, 这通常意味着轮询循环花费了太多时间进行消息处理。 您可以通过增加会话超时或通过max.poll.records减少poll()中返回的批量的最大大小来解决此问题。
无论我在Kafka中设置的是什么属性,它总是显示上面的警告信息。
{
"propertyKey": "enable.auto.commit",
"propertyValue": "true"
},
{
"propertyKey": "session.timeout.ms",
"propertyValue": "250000"
},
{
"propertyKey": "request.timeout.ms",
"propertyValue": "305000"
},
{
"propertyKey": "auto.commit.interval.ms",
"propertyValue": "800000"
},
{
"propertyKey": "max.poll.records",
"propertyValue": "300"
},
{
"propertyKey": "max.poll.interval.ms",
"propertyValue": "300000"
}
我不确定Kafka010JsonTableSource Flink1.4是否会自动提交偏移量。但测试结果表明它不会自动提交偏移量。任何人都可以帮助确认这个问题吗?或者你能在我的代码中看到任何其他问题吗?
答案 0 :(得分:0)
您是否尝试过设置低于经纪人session.timeout.ms
值的group.max.session.timeout.ms
值?根据{{3}},这似乎是个问题。