工作日志,go get -v -x github.com/pebbe/zmq4 失败问题
工作日志,go get -v -x github.com/pebbe/zmq4 失败问题
笔者因为工作需要使用ZeroMQ,但是在执行go get -v -x github.com/pebbe/zmq4
命令时一直提示auth.go:19:17: fatal error: zmq.h: No such file or directory
的错误,这里记录踩坑日志。
ZeroMQ简介
ZeroMQ(也称为ØMQ,0MQ或ZMQ)是一种高性能的异步消息传递库,旨在用于分布式或并行应用程序中。它提供了一个消息队列,但是与常见的RabbitMQ,ActiveMQ消息中间件不同。ZeroMQ就像一个工具包直接嵌入到项目中,具有很高的吞吐量。但也存在很多局限性。
ZeroMQ 优点
一)、吞吐量远高与其他消息中间件,号称是“史上最快的消息队列”。
二)、扩展性强,可以对原生的方法进行封装,丰富其功能。
ZeroMQ缺点
一)、消息的不可靠性。ZeroMQ并不能保证可靠的消息传输,算的上致命缺点吧。
二)、原生不支持消息的持久化,仅支持本地缓存。当本地缓存塞满后,可能存在消息丢失的情况。
三)、没有很好的调试工具。代码虽然提示发送成功,但订阅方却收不到消息。
解决思路
第一步:下载Windows版的zeromq,官网下载地址:https://dl.bintray.com/zeromq/generic/libzmq-v141-x64-4_3_2.zip
第二步:解压libzmq-v141-x64-4_3_2.zip,将解压后的libzmq-v141-mt-4_3_2.dll 和 libsodium.dll 拷贝到GOPATH\pkg\mod\github.com\pebbe\zmq4@v1.0.0\usr\local\lib 目录下(或者是GOPATH\src\github.com...),若目录不存在则需手动创建。拷贝后再将libzmq-v141-mt-4_3_2.dll 重名为libzmq.dll
第三步:下载zeromq\libzmq源文件,github下载地址:https://github.com/zeromq/libzmq/releases/download/v4.3.2/zeromq-4.3.2.zip
第四步:解压zeromq-4.3.2.zip,将解压后的include目录直接拷贝到GOPATH\pkg\mod\github.com\pebbe\zmq4@v1.0.0\usr\local\ 目录下(或者是GOPATH\src\github.com...)
第五步:再执行go get -v -x github.com/pebbe/zmq4 命令,等待完成。
其他问题
一)、could not determine kind of name for C.SOCKET
笔者 在第一次安装ZeroMQ时遇到过(好像4.3.3版本存在这个问题,4.3.2没有),需要修改GOPATH\pkg\mod\github.com\pebbe\zmq4(@v1.0.0)\socketget_windows.go 文件,在import "C"之前加一行 #include <winsock2.h>
二)、下载过程中出现 timeout
配置国内代理https://github.com/goproxy/goproxy.cn/blob/master/README.zh-CN.md
在PowerShell中执行命令
C:\> $env:GOPROXY = "https://goproxy.cn"
三)、ZeroMQ 订阅成功但收不到消息
代码打印消息提示订阅成功,发送端也提示发送成功。但是订阅端就是收不到消息。后来的连接地址的localhost改成实际IP地址就好了。
出处:http://www.cnblogs.com/itdragon/
简介:每天都在进步,每周都在总结,架构师的修罗之路!你的一个点赞,一句留言,就可以让博主开心一笑,充满动力!ITDragon的微信公众号学英语会编程只有英语学的好,源码才能看的爽
版权:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。