如何判断kafka集群是否可用

CodingCode · · 3264 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

如何判断kafka集群是否可用

和判断zookeeper集群是否可用一样,也没有更好的把办法,下面的办法也是由client发起一个基本的kafka命令,看看命令的执行结果是否正常。
这个例子采用的命令是list所有的topic,看看命令能否执行成功。

下面是golang的客户端使用github.com/Shopify/sarama库的例子。

package main

import (
    "log"
    "time"

    "github.com/Shopify/sarama"
)

var KAFKA_BROKERS     = []string { "kafka1.example.com:9092",
                                   "kafka2.example.com:9092",
                                   "kafka3.example.com:9092"}

func main() {
    if checkKafka() {
        log.Printf("Check kafka status success\n")
    } else {
        log.Printf("Check kafka status failure\n")
    }
}

func checkKafka() bool {
    config := sarama.NewConfig()
    
    client, err := sarama.NewClient(KAFKA_BROKERS, config)
    if err != nil {
        log.Printf("ERROR: Unable to create kafka client, err=[%v]", err)
        return false
    }
    defer client.Close()

    topics, err := client.Topics()
    if err != nil {
        log.Printf("ERROR: Unable to list kafka topics, err=[%v]", err)
        return false
    }
    
    log.Printf("Get total topics count=[%d]\n", len(topics))
    for i, topic := range topics {
        log.Printf("\tTopic[%d]: [%s]\n", i, topic)
    }

    return true
}

有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:CodingCode

查看原文:如何判断kafka集群是否可用

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3264 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传