工作日志,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地址就好了。

工作日志,go get -v -x github.com/pebbe/zmq4 失败问题的更多相关文章

  1. 使用SharePoint Designer定制开发员工工作日志系统实例!

    昨天已介绍了一篇<使用SharePoint Designer定制开发专家库系统实例!>,今天继续来介绍使用SharePoint Designer定制开发员工工作日志系统实例,主要功能包括填 ...

  2. WebADI_WebADI工作日志设定(案例)

    20150707 Created By BaoXinjian

  3. ubuntu下定时弹窗记录工作日志

    背景 记录工作日志,是一个很好的习惯,但不容易坚持,本来打算每天记录,但经常拖延,拖着拖着,有一些事情就忘记了. 等到写周报或月报的时候,才会开始翻邮件,聊天记录,各个仓库的提交log等,回忆都干了些 ...

  4. 工作日志,证书无效 unable to find valid certification path to requested target

    工作日志,证书无效 unable to find valid certification path to requested target 最近被这个问题弄得头大.导致所有用到 se.transmod ...

  5. JIRA开启时间追踪并为问题记录工作日志

    在升级版的JIRA中(4.2or4.3),我们可以使用其记录工作日志的功能.之前研究了很长时间,就是找不到初始预估时间在哪里设置,但是剩余工作时间与耗费时间都可以填写.根据官网的帮助文档也没找到合适的 ...

  6. 工作日志,error parsing query: unable to find time zone

    工作日志,error parsing query: unable to find time zone 坑 Windows 系统使用influxdb数据库,在执行查询语句时提示 ERR: error p ...

  7. $ ssh -T -v git@github.com_在本地用ssh连接github出错_git@github.com: Permission denied (publickey).

    $ ssh -T -v git@github.com报错: debug1: Authentications that can continue: publickey debug1: Next auth ...

  8. Github css加载失败,样式混乱解决办法

    github被墙的解决办法 Github css加载失败,样式混乱解决办法   打开cmd,输入  nslookup github.com 8.8.8.8  ,下面就会显示出github的服务器地址列 ...

  9. YT工作日志-0911

    上午 在导师的帮助下,帮我从svn上下载了项目.但是因为项目太大(不算jar包有730M),很多模块不是我工作中涉及的,但是运行的时候会报错,所以导师还帮我找了很多错误.把那些不需要的东西注释了.就这 ...

随机推荐

  1. 一个故事搞懂Java并发编程

    最近在给别人讲解Java并发编程面试考点时,为了解释锁对象这个概念,想了一个形象的故事.后来慢慢发现这个故事似乎能讲解Java并发编程中好多核心概念,于是完善起来形成了了这篇文章.大家先忘记并发编程, ...

  2. C语言函数调用过程,汇编角度查看

    C语言函数调用过程,汇编角度查看 把函数的参数按照调用约定压栈或者存储到寄存器中 调用要使用的函数,先把调用者的地址入栈,方便回来 跳转到函数 把函数使用到的一些寄存器压栈,避免修改寄存器的值 执行函 ...

  3. OLTP

    On-Line Transaction Processing,联机事务处理过程(OLTP),也称为面向交易的处理过程 其基本特征是前台接收的用户数据可以立即传送到计算中心进行处理,并在很短的时间内给出 ...

  4. 图像处理之C语言实现二维卷积

    在用C语言实现图像处理中,经常要用到二维卷积的运算,这个在matlab中是非常容易实现的,只需要conv2()就OK啦,而且速度非常的快.但是在C语言中就需要四层的for循环来实现了. 首先二维卷积的 ...

  5. GO基础之延时执行

    一.延迟是什么?•即延迟( defer)语句,延迟语句被用于执行一个函数调用,在这个函数之前,延迟语句返回. 一.延迟函数 1.可以在函数中添加多个defer语句.•当函数执行到最后时,这些defer ...

  6. js自带的对数组中的操作

    这篇是我自己总结的,是我自己平常使用的不是很多的数组方法,而且都是js自带的,像大家经常使用的push.pop方法就没写里面.废话不多说,直接看代码 <!DOCTYPE html> < ...

  7. netty解决粘包半包问题

    前言:开发者用到TCP/IP交互时,偶尔会遇到粘包或者半包的数据,这种情况有时会对我们的程序造成严重的影响,netty框架为解决这种问题提供了若干框架 1. LineBasedFrameDecoder ...

  8. Saltstack_使用指南09_远程执行-编写执行模块

    1. 主机规划 salt 版本 [root@salt100 ~]# salt --version salt (Oxygen) [root@salt100 ~]# salt-minion --versi ...

  9. MySQL Online DDL与DML并发阻塞关系总结

    MySQL DDL操作执行的三种方式 1,INPLACE,在进行DDL操作时,不影响表的读&写,可以正常执行表上的DML操作,避免与COPY方法相关的磁盘I/O和CPU周期,从而最小化数据库的 ...

  10. Hazelcast介绍

    Hazelcast介绍 什么时侯需要用例 内存中分布式计算 场景分布式消息 特性 全景 Distributed Maps 一个结点中分区 Hazelcast中的分片也称为分区,Hazelcast默认2 ...