AdminClient describeConsumerGroups 这个API获取不到组成员真实的IP地址?

任英杰 发表于: 2020-04-14   最后更新时间: 2020-04-16 19:45:56   2,148 游览

1、 AdminClient describeConsumerGroups 这个API获取不到组成员真实的IP地址

2、 kafka broker版本:0.11.0.0;kafka client jar: org.apache.kafka-kafka_2.11-2.0.0
是生产环境出现这个问题,kafka broker使用的是阿里云服务器,三个节点。外网:弹性共用IP;内网是三个不同的内网IP.

需求是获取到消费者实例所在主机的IP,生产环境下获取到的是kafak broker其中一个节点的地址,而在本地环境(使用了Vmware)可以获取到消费者实例的实际地址,而非broker的地址。

以下是示例代码:

List<String> groupIds = new ArrayList<String>();
        groupIds.add("TEST-GROUP");
        DescribeConsumerGroupsResult describeConsumerGroupsResult = adminClient.describeConsumerGroups(groupIds);
        Map<String,ConsumerGroupDescription> resultMap = describeConsumerGroupsResult.all().get();
        resultMap.forEach((group,description)->{
            System.out.println(group);
            Collection<MemberDescription> members = description.members();
            for(MemberDescription member:members){
                String host = member.host();
                System.out.println(host);
            }
        });
发表于 2020-04-14
添加评论

获取不到的,它获取的是每个kafka节点listeners配置的,或者是默认的内部ip。

你的答案

查看kafka相关的其他问题或提一个您自己的问题