如何构建高效的kafka代理healthcheck?

8ehkhllq  于 2021-06-08  发布在  Kafka
关注(0)|答案(3)|浏览(474)

在我的应用程序中,我将对我的kafka集群执行某种健康检查。
目前我做了一个 TopicMetadataRequest 要检测死亡经纪人:

Future {
    // this will fail if Kafka is unavailable
    consumer.send(new TopicMetadataRequest(Seq("health-check-topic"), 1))
  }

不幸的是,由于集群拓扑/设置的原因,这个调用产生了巨大的网络流量。
有没有更好的方法来检查Kafka经纪人?我需要的是一些简单的东西,比如 true/false 指示器。

h7appiyu

h7appiyu1#

您还可以使用zookeeper api获取代理列表,如下所示:

ZooKeeper zk = new ZooKeeper(KafkaContextLookupUtil.getZookeeperConnect().getZkConnect(), 10000, null);
    List<String> ids = zk.getChildren("/brokers/ids", false);
    List<Map> brokerList = new ArrayList<>();
    ObjectMapper objectMapper = new ObjectMapper();

    for (String id : ids) {
        Map map = objectMapper.readValue(zk.getData("/brokers/ids/" + id, false, null), Map.class);
        brokerList.add(map);
    }
    return brokerList;
8ftvxx2r

8ftvxx2r2#

如果您想建立自己的健康检查,这是一个涵盖健康检查的KIP当前(2020年1月)列表:
kip-143:控制器健康指标
kip-188:添加新的指标来支持健康检查
kip-237:更多控制器健康指标
关于哈文德·辛格目前接受的答案:
Kafka教练很棒,但发展缓慢。当然有confluent control center-confluent平台的一部分,但您需要一个许可证。confluent是一家由Apache·Kafka的团队创建的公司。我听说过akhq(前Kafka)(黑客新闻故事)。以下是apache kafka confluence页面上维护的管理控制台列表(请在此处检查URL):
Kafka管理器-一个用于管理ApacheKafka的工具。
Kafka-简化的命令行管理Kafka经纪人。
kafka web控制台-显示有关kafka群集的信息,包括哪些节点启动以及它们为哪些主题承载数据。
Kafka偏移监视器-显示所有消费者的状态,以及他们落后于流头多远。
毛细管-显示基于Kafka的apache storm拓扑的状态和增量。支持Kafka>=0.8。它还提供了一个api,用于获取这些信息以进行监视。
Kafka博士-群集自动修复和工作负载平衡服务。
巡航控制-完全自动化Kafka群集的动态工作负载重新平衡和自我修复。
burrow-monitoring companion,将使用者延迟检查作为服务提供,而无需指定阈值。
一个监视数据流的完整性和延迟的审计系统。
如果不需要gui,还有:
https://github.com/andreas-schroeder/kafka-health-check
还有它的叉子https://github.com/ustream/kafka-health-check

vd2z7a6w

vd2z7a6w3#

我强烈建议您使用雅虎Kafka管理器,它提供了所有有关Kafka设置的信息(e、 g.在一个时间间隔内发送/消耗的字节)。此工具还可用于管理kafka群集。
它还公开了restfulapi,如果需要,您可以在自己的应用程序中使用这些api。按以下链接访问它。
https://github.com/yahoo/kafka-manager

相关问题