add consumer group console

This commit is contained in:
许晓东
2021-09-10 21:06:16 +08:00
parent cb55c20c0b
commit 098af95dc7
9 changed files with 196 additions and 1 deletions

View File

@@ -0,0 +1,38 @@
package kafka.console
import java.util
import java.util.{Collections, Set}
import com.xuxd.kafka.console.config.KafkaConfig
import org.apache.kafka.clients.admin.{ConsumerGroupDescription, ListConsumerGroupsOptions}
import org.apache.kafka.common.ConsumerGroupState
import scala.jdk.CollectionConverters.{CollectionHasAsScala, SetHasAsJava}
/**
* kafka-console-ui. kafka consumer console.
*
* @author xuxd
* @date 2021-09-10 17:19:31
* */
class ConsumerConsole(config: KafkaConfig) extends KafkaConsole(config: KafkaConfig) with Logging {
def getConsumerGroupIdList(states: Set[ConsumerGroupState]): Set[String] = {
withAdminClientAndCatchError(admin => admin.listConsumerGroups(new ListConsumerGroupsOptions().inStates(states)).all().get()
.asScala.map(_.groupId()).toSet.asJava,
e => {
log.error("listConsumerGroups error.", e)
Collections.emptySet()
}).asInstanceOf[Set[String]]
}
def getConsumerGroupList(groupIds: util.Collection[String]): Set[ConsumerGroupDescription] = {
val searchGroupIds: Set[String] = if (groupIds == null || groupIds.isEmpty) getConsumerGroupIdList(null) else new util.HashSet[String](groupIds)
withAdminClientAndCatchError(admin => new util.HashSet[ConsumerGroupDescription](admin.describeConsumerGroups(searchGroupIds).all().get().values()),
e => {
log.error("listConsumerGroups error.", e)
Collections.emptySet()
}).asInstanceOf[Set[ConsumerGroupDescription]]
}
}