ConsumerRecords 泛型如何确定
时间: 2023-07-23 13:07:26 浏览: 114
C# 泛型参数转换
5星 · 资源好评率100%
ConsumerRecords 泛型的确定取决于你使用的 Kafka 客户端库的版本。
在较早的 Kafka 客户端版本中(例如0.10.x),ConsumerRecords 的泛型参数是 Key 和 Value 的类型,可以在创建 KafkaConsumer 实例时指定它们的类型。例如:
```java
Properties props = new Properties();
props.put("bootstrap.servers", "localhost:9092");
props.put("group.id", "my-group");
props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props);
```
在这个例子中,ConsumerRecords 的泛型参数是 `<String, String>`,表示 Key 和 Value 的类型都是 String。
然而,在较新的 Kafka 客户端版本中(例如1.0.x及更高),ConsumerRecords 的泛型参数已被移除,而是通过 ConsumerConfig 中的配置来确定 Key 和 Value 的类型。例如:
```java
Properties props = new Properties();
props.put("bootstrap.servers", "localhost:9092");
props.put("group.id", "my-group");
props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props, new StringDeserializer(), new StringDeserializer());
```
在这个例子中,`new StringDeserializer()` 指定了 Key 和 Value 的反序列化器的类型为 String。
总之,根据你使用的 Kafka 客户端库的版本不同,ConsumerRecords 的泛型参数的确定方法也会有所不同。请参考你所使用的 Kafka 客户端库的文档来确定正确的用法。
阅读全文