Apache flink 在日志中,我看到KafkaTopicPartition不能用作POJO;这是什么意思?

Apache flink 在日志中,我看到KafkaTopicPartition不能用作POJO;这是什么意思?,apache-flink,flink-streaming,Apache Flink,Flink Streaming,不是错误,但我确实看到这一行,根据消息可能会影响性能: 2019-01-02 14:44:44,879 INFO org.apache.flink.api.java.typeutils.TypeExtractor - class org.apache.flink.streaming.connectors.kafka.internals.KafkaTopicPartition does not contain a setter for field topic 2019

不是错误,但我确实看到这一行,根据消息可能会影响性能:

2019-01-02 14:44:44,879 INFO  org.apache.flink.api.java.typeutils.TypeExtractor             
- class org.apache.flink.streaming.connectors.kafka.internals.KafkaTopicPartition 
does not contain a setter for field topic
2019-01-02 14:44:44,879 INFO  org.apache.flink.api.java.typeutils.TypeExtractor             
- Class class org.apache.flink.streaming.connectors.kafka.internals.KafkaTopicPartition 
cannot be used as a POJO type because not all fields are valid POJO fields, 
and must be processed as GenericType. Please read the Flink documentation on "Data Types & Serialization" 
for details of the effect on performance.
 2019-01-02 14:44:44,884 INFO  org.apache.flink.streaming.connectors.kafka.FlinkKafkaConsumerBase  - No restore state for FlinkKafkaConsumer.

这是我可以/需要做的吗?

关于不能用作POJO类型的类型的声明记录在信息级别,而不是警告,因为它通常不是特别相关的。但它有时确实指出可能导致性能问题的类。这是因为Flink能够为POJO类(具有空默认构造函数和公共字段或公共getter和setter的类)使用其自己的、性能更高的序列化框架,否则会退回到Kyro


如果这是你的应用程序对象之一,如果你要对它们进行序列化和反序列化,那么是的,这将是一件值得考虑的事情。但在本例中,不是。这是各种Flink/Kafka连接器使用的内部对象,不应更改。

关于不能用作POJO类型的类型的声明记录在信息级别,而不是警告,因为它通常不是特别相关的。但它有时确实指出可能导致性能问题的类。这是因为Flink能够为POJO类(具有空默认构造函数和公共字段或公共getter和setter的类)使用其自己的、性能更高的序列化框架,否则会退回到Kyro

如果这是你的应用程序对象之一,如果你要对它们进行序列化和反序列化,那么是的,这将是一件值得考虑的事情。但在本例中,不是。这是各种Flink/Kafka连接器使用的内部对象,不应更改