我的FlinkKafkaProducer011需要的参数比预期的要少

问题描述

我在使用FlinkKafkaConnector时遇到困难。

尽管我已经导入了org.apache.flink.streaming.connectors.kafka.FlinkKafkaProducer011,但遇到了以下错误

Too many arguments for constructor FlinkKafkaProducer011

根据this site,参数正确。但是,我的IntelliJ显示了此定义。

public FlinkKafkaProducer011() {
}

有人知道如何解决吗?

The error I got

更新

这是IDE定义。

public class FlinkKafkaProducer011 {
    public FlinkKafkaProducer011() {
    }

    public static class NextTransactionalIdHint extends org.apache.flink.streaming.connectors.kafka.FlinkKafkaProducer.NextTransactionalIdHint {
        public NextTransactionalIdHint() {
        }
    }

    public static class TransactionStateSerializer {
        public TransactionStateSerializer() {
        }

        public static final class TransactionStateSerializerSnapshot extends SimpleTypeSerializerSnapshot<KafkaTransactionState> {
            public TransactionStateSerializerSnapshot() {
                super(org.apache.flink.streaming.connectors.kafka.FlinkKafkaProducer.TransactionStateSerializer::new);
            }
        }
    }

    public static class ContextStateSerializer {
        public ContextStateSerializer() {
        }

        public static final class ContextStateSerializerSnapshot extends SimpleTypeSerializerSnapshot<KafkaTransactionContext> {
            public ContextStateSerializerSnapshot() {
                super(org.apache.flink.streaming.connectors.kafka.FlinkKafkaProducer.ContextStateSerializer::new);
            }
        }
    }

    public static class NextTransactionalIdHintSerializer {
        public NextTransactionalIdHintSerializer() {
        }

        public static final class NextTransactionalIdHintSerializerSnapshot extends SimpleTypeSerializerSnapshot<org.apache.flink.streaming.connectors.kafka.FlinkKafkaProducer.NextTransactionalIdHint> {
            public NextTransactionalIdHintSerializerSnapshot() {
                super(org.apache.flink.streaming.connectors.kafka.FlinkKafkaProducer.NextTransactionalIdHintSerializer::new);
            }
        }
    }
}

解决方法

能否请您指定使用的flink-connector-kafka版本?

据我所知,您使用的org.apache.flink.streaming.connectors.kafka.FlinkKafkaProducer011只是flink-connector-kafka_2.11 jar中的一个兼容性类,而使用的正确的生产者是org.apache.flink.streaming.connectors.kafka.FlinkKafkaProducer

据我了解,javadoc {{3}}与org.apache.flink.streaming.connectors.kafka.FlinkKafkaProducer011工件中的flink-connector-kafka-0.11_2.11生产者有关。

因此,我建议切换到org.apache.flink.streaming.connectors.kafka.FlinkKafkaProducer或将依赖关系更改为flink-connector-kafka-0.11_2.11 jar。