2024年最新第一节:kafka golang sarama初体验(2),颠覆认知

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取


前言

关于Kafka的开发库,以Java的居多,Golang语言的开发库,主要推荐的是sarama
项目地址: https://github.com/IBM/sarama
项目文档:https://godoc.org/github.com/Shopify/sarama
这个项目之前地址是https://github.com/Shopify/sarama 通过源地址也可以访问


一、sarama是什么?

sarama是一个纯粹的Go客户端库,用于处理Apache Kafka(0.8及更高版本)。
目前研究的几个操作对象:

type Client : 主要操作元数据

例如获取所有Topics,获取Controller ID ,获取Broker ID和Addr 等

type ClusterAdmin:

主要操作和获取集群主题,副本等信息

其他待补充

二、小试牛刀

1.创建项目

代码如下(示例):

cd /data/go_projects/middleware
mkdir kafka_devops
cd kafka_devops
go mod init github.com/cuiwin/kafka_devops
go mod tidy 
# 下载库
go get github.com/IBM/sarama

2.创建kafka_client.go

代码如下(示例):

package main

import (
	"fmt"
	"log"

	"github.com/IBM/sarama"
)

func main() {
	brokers := []string{"IP1:Port1", "IP2:Port2", "IP2:Port2"}

	client, err := sarama.NewClient(brokers, nil)
	if err != nil {
		log.Fatal("Failed to create client", err)
	}

	defer func() {
		err = client.Close()
		if err != nil {
			log.Println("Error closing client", err)
		}
	}()

	// 获取Topics
	// Topics returns the set of available topics as retrieved from cluster metadata.
	topics, err := client.Topics()
	if err != nil {
		log.Fatal("Failed to list topics", err)
	}

	for \_, topic := range topics {
		fmt.Printf("%v\n", topic)
	}

	// 获取Brokers
	// Brokers returns the current set of active brokers as retrieved from cluster metadata.
	// var brokerlist []\*sarama.Broker
	brokerlist := client.Brokers()
	for \_, broker := range brokerlist {
		fmt.Printf("Brokers: ID:%v Addr:%v\n", broker.ID(), broker.Addr())
	}

	// 获取Controller
	// Controller returns the cluster controller broker. It will return a
	// locally cached value if it's available. You can call RefreshController
	// to update the cached value. Requires Kafka 0.10 or higher.
	// Controller()(\*Broker, error)


![img](https://img-blog.csdnimg.cn/img_convert/888d7a26ad22fb701771b72be982be30.png)
![img](https://img-blog.csdnimg.cn/img_convert/8025f6cf90ab9a24ce0842259685c14f.png)
![img](https://img-blog.csdnimg.cn/img_convert/2aa0a9fc106a035d25754130e0796a64.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618658159)**



**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618658159)**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值