2017-12-19 27 views
0

저는 하루 종일 인터넷을 통해 빗질 해 왔으며 제대로 작동하지 못했습니다.브로커 기반 오프셋을 사용하여 프로그래밍 방식으로 소비자 지연 가져 오기

내가 원하는 것은 주어진 groupID에 대한 소비자 그룹 래그 메트릭 (또는 현재와 마지막에서 파생 된 2 개의 오프셋)입니다.

메신저 kafka 0.9+ (그래서 사육사의 오프셋 없음)를 사용하고 필요하면 더 새로운 것을 사용할 수도 있습니다.

스크립트를 사용하지 않고 프로그래밍 방식으로 을 얻는 방법이 필요합니다.

누군가, 제발, 어떻게해야합니까 ?????

+0

소비자의 설문 조사 루프 내부에서와 같은 뜻입니까? 또는 무엇을? –

+0

그렇다면, 이미 시도한 것들을 제안하는 것은 미안하지만'consumer.subscribe()'다음에'consumer.position()'과'consumer.endOffsets()'가 함께 사용되어서는 안됩니다. –

+0

귀하의 의견을 주셔서 감사합니다, 아마도 당신은 일을 제안했지만 개별적으로 각 소비자를 질문해야만하고 싶지 않습니다. 나는 그룹의 정보를 얻고 싶습니다. 그곳에 문제가 없어야합니다 ... Kafka 친구들은 정말 공을 떨어 뜨 렸습니다. 이것 하나에. –

답변

1

AdminClient를 통해 소비자 그룹 세부 정보를 검색하는 방법을 추가하기위한 작업이 현재 진행 중입니다 (https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=74686265 참조).

그동안 최선의 방법은 kafka-consumer-group 도구의 로직을 다시 사용하는 것입니다. 이 Scala 클래스는 https://github.com/apache/kafka/blob/trunk/core/src/main/scala/kafka/admin/ConsumerGroupCommand.scala 클래스를 기반으로하며 그룹의 모든 인스턴스에 대한 세부 정보를 검색하는 비트를 추출하는 것이 매우 어렵지 않습니다.

+0

나는이 클래스를 이해하지 못했거나 내 환경으로 가져 와서 실행 해 보았다. ... –

+0

그래서 나는 이것을 시도했다. 그러나 내가 발견 한 것은 당신이 많은 소비자를 가진 클러스터를 가지고 있다면 ... 오랜 시간이 걸린다는 것이다. 실행하고 중개인에 대한 많은 자원을 차지합니다 .... 30 초마다 모든 지연을 프로그래밍 방식으로 풀고 싶다면 확장 성이 좋지 않습니다. – user2061886

+0

소비자는 지연 메트릭 인 http : //kafka.apache도 방출합니다. org/documentation/# new_consumer_fetch_monitoring. 우리가 실제로하고 싶은 일에 따라 JMX를 통해 각 인스턴스를 쿼리하거나 커스텀 메트릭 리포터를 사용하여 다른 시스템에 값을 보낼 수도 있습니다. –