Kafka adminclient API-对于Map <topicpartition,object>类型,get(TopicPartition)模棱两可

时间:2018-12-29 08:43:12

标签: java apache-kafka

这是我的代码:

    Properties props2 = new Properties();
    props.put(CommonClientConfigs.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092");
    AdminClient adminClient = AdminClient.create(props);
    scala.collection.immutable.Map<TopicPartition,Object> offsets = 
    adminClient.listGroupOffsets("foo");
    Option<Object> offset = offsets.get(new TopicPartition("test", 0));
    System.out.println(Long.parseLong(offset.get().toString())); 

我正在使用kafka_2.11_0.10.2.1kafka-clients_0.10.2.1offsets.get()有一个已编译的问题:The method get(TopicPartition) is ambiguous for the type Map<TopicPartition,Object>。我应该如何解决?

1 个答案:

答案 0 :(得分:0)

这可能不是最佳方法,但这当然是一种解决方法。

/* import statements */
import org.apache.kafka.clients.CommonClientConfigs;
import org.apache.kafka.common.TopicPartition;
import java.util.Map;
import java.util.Properties;
import kafka.admin.AdminClient;
import scala.collection.JavaConverters;

/* code snippet */
Properties props = new Properties();
props.put(CommonClientConfigs.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092");

AdminClient adminClient = AdminClient.create(props);
scala.collection.immutable.Map<TopicPartition, Object> offsets =
adminClient.listGroupOffsets("foo");    
Map<TopicPartition, Object> javaOffsets =
JavaConverters.mapAsJavaMapConverter(offsets).asJava();

Object key = javaOffsets.get(new TopicPartition("my-topic", 0));
System.out.println(Long.parseLong(key.toString()));