【golang】kafka
这篇博客是用来记录用go安装及操作kafka库的时候踩到的坑~
安装kafka库
首先我参考了博客:https://blog.csdn.net/tflasd1157/article/details/81985722和https://blog.csdn.net/u011596455/article/details/80073841
在go get github.com/Shopify/sarama安装过程中出现了
package golang.org/x/net/proxy: unrecognized import path "golang.org/x/net/proxy" (https fetch: Get https://golang.org/x/net/proxy?go-get=1: dial tcp 216.239.37.1:443: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.)
起初我以为是被墙了的原因,后来借用同学的ssrr节点翻墙后还是没能解决。
直到我看到这篇博客:https://www.jianshu.com/p/a55ba2ae6507
go get的时候遇到这个unrecognized import path "golang.org/x/net/html"提示,因为golang被大清墙了。
因此我们只能从github上拿到这部分包,放入项目中。命令:
git clone https://github.com/golang/net
也可手动下载后解压
在gopath目录的src文件夹内建立如下目录 golang.org/x/net,将上面下载的net里面的文件放到该net目录中即可!
随后继续go get,然后又是报这个错。。
# github.com/DataDog/zstd
cc1.exe: sorry, unimplemented: 64-bit mode not compiled in
意思是mingw需要下载64位版本,而系统自带的是32位,所以又参考惹这篇博客安装mingw64:https://www.cnblogs.com/ggg-327931457/p/9694516.html
安装之前的gcc版本

还没安装又弹出个错误

折腾了半天试了各种方法还是不好使最后结果把校园网换成热点竟然成了。。成了。。。。
安装好之后修改配置变量,把其他所有有关mingw配置全删了,替换成刚下载的mingw64/bin

继续执行go get github.com/Shopify/sarama
顺利安装成功~
go操作kafka
首先启动zookeeper和kafka
创建了一个main.go
package main import (
"fmt" "github.com/Shopify/sarama"
) func main() {
config := sarama.NewConfig()
config.Producer.RequiredAcks = sarama.WaitForAll
config.Producer.Partitioner = sarama.NewRandomPartitioner
config.Producer.Return.Successes = true
msg := &sarama.ProducerMessage{}
msg.Topic = "test"//topic没有的话会新建
msg.Value = sarama.StringEncoder("this is a good test,my message is zhaofan")
client, err := sarama.NewSyncProducer([]string{"192.168.0.118:9092"}, config)
if err != nil {
fmt.Println("producer close err:", err)
return
}
defer client.Close() pid, offset, err := client.SendMessage(msg)
if err != nil {
fmt.Println("send message failed,", err)
return
}
fmt.Printf("pid:%v offset:%v\n", pid, offset)
}
go run main.go后消费者执行
kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test --from-beginning
成功
【golang】kafka的更多相关文章
- 【转载】Kafka史上最详细原理总结
Kafka是最初由Linkedin公司开发,是一个分布式.支持分区的(partition).多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量 ...
- 【Golang】基于录制,自动生成go test接口自动化用例
背景 之前写过一篇博客,介绍怎么用Python通过解析抓包数据,完成自动化用例的编写.最近这段时间在使用go test,所以就在想能不能也使用代码来生成自动化用例,快速提升测试用例覆盖率.说干就干. ...
- 【原创】Kafka producer原理 (Scala版同步producer)
本文分析的Kafka代码为kafka-0.8.2.1.另外,由于Kafka目前提供了两套Producer代码,一套是Scala版的旧版本:一套是Java版的新版本.虽然Kafka社区极力推荐大家使用J ...
- 【原创】kafka producer源代码分析
Kafka 0.8.2引入了一个用Java写的producer.下一个版本还会引入一个对等的Java版本的consumer.新的API旨在取代老的使用Scala编写的客户端API,但为了兼容性 ...
- 【转】Kafka producer原理 (Scala版同步producer)
转载自:http://www.cnblogs.com/huxi2b/p/4583249.html 供参考 本文分析的Kafka代码为kafka-0.8.2.1.另外,由于Kafka目前提供了两 ...
- 【转】kafka&zookeeper集群搭建指南
[转自]:http://www.cnblogs.com/luotianshuai/p/5206662.html 待续...
- 【原创】Kafka Consumer多线程实例
Kafka 0.9版本开始推出了Java版本的consumer,优化了coordinator的设计以及摆脱了对zookeeper的依赖.社区最近也在探讨正式用这套consumer API替换Scala ...
- 【原创】Kafka console consumer源代码分析(一)
上一篇中分析了Scala版的console producer代码,这篇文章为读者带来一篇console consumer工作原理分析的随笔.其实不论是哪个consumer,大部分的工作原理都是类似的. ...
- 【原创】Kafka topic常见命令解析
本文着重介绍几个常用的topic命令行命令,包括listTopic,createTopic,deleteTopic和describeTopic等.由于alterTopic并不是很常用,本文中就不涉及了 ...
随机推荐
- 发布自己的npm包、开源项目
背景:由于最近在做项目之余想做一些其他的事,所以东找找西找找的,最后决定写一个封装一些常用原型方法的NPM包,但不仅限于此.话不多说,说一下实践过程. 一.注册NPM及如何上传NPM包参考连接:htt ...
- mysql数据据备份与还原
http://www.cnblogs.com/kissdodog/p/4174421.html备份:mysqldump -u username -p dbname > BackupName.sq ...
- day09 python之函数进阶
楔子 假如有一个函数,实现返回两个数中的较大值: def my_max(x,y): m = x if x>y else y return mbigger = my_max(10,20)print ...
- ZAmbIE [DDoS Attacks](DDOS攻击)
在youtube上发现的一个视频 这是一个开源项目 git clone https://github.com/zanyarjamal/zambie.git chmod -R 777 zambie cd ...
- ReportViewe调用Reporting Services报表时报错Session超时
序列化问题加上[Serializable]即可 /// <summary> /// 报表身份授权重写 /// </summary> [Serializable] public ...
- 【Spark-core学习之二】 RDD和算子
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk1.8 scala-2.10.4(依赖jdk1.8) spark ...
- Shell 常见理论问答
(1)shell脚本中,怎么可以把某一行注释掉? 答:“#”. (2)如何执行一个shell脚本呢? 答:“sh x.sh”,“加执行./x.sh”,“bash x.sh”. (3)为了方便管理我们约 ...
- mac 遇到的奇怪问题?
1: 卸载 xcode,发现git报错了. mac git xcrun error active developer path 错误 解决办法:sudo xcode-select -switch / ...
- Centos 安装pureftpd工具
之前由于vsftp上传文件会导致权限变更,因此一直不太想用ftp工具,一直sftp了,这样就导致权限过大,用户对家目录下所有文件都有权限,很容易误删其他文件.最近听同事说pure-ftp工具不错,试了 ...
- 【IOS】#import和#include有什么区别,@class呢,#import<>跟#import ""有什么区别?
1.#import是object-c导入头文件的关键字,#include是C/c++导入头文件的关键字,使用#import导入头文件会自动只导入一次,不会重复导入. 2.@class是告诉编译器某个类 ...