ZeroMQ库编译
一、zmq下载
官网:https://zeromq.org/languages/cplusplus/
官网里面有各语言下载链接及简单用例
GitHub下载链接:https://github.com/zeromq
二、zmq简介
ZMQ (也拼写作ZeroMQ,0MQ或ØMQ)是一个为可伸缩的分布式或并发应用程序设计的高性能异步消息库。它提供一个消息队列, 但是与面向消息的中间件不同,ZeroMQ的运行不需要专门的消息代理。该库设计成常见的套接字风格的API。
ZMQ将消息通信分成4种模型:
- 一对一结对模型(Exclusive-Pair),可以认为是一个TCP Connection,但是TCP Server只能接受一个连接。数据可以双向流动,这点不同于后面的请求回应模型。
- 请求回应模型(Request-Reply),由Client发起请求,并由Server响应,跟一对一结对模型的区别在于可以有多个Client。
- 发布订阅模型(Publish-Subscribe),Publish端单向分发数据,且不关心是否把全部信息发送给Subscribe端。如果Publish端开始发布信息时,Subscribe端尚未连接进来,则这些信息会被直接丢弃。Subscribe端只能接收,不能反馈,且在Subscribe端消费速度慢于Publish端的情况下,会在Subscribe端堆积数据。
- 管道模型(Push-Pull),从 PUSH 端单向的向 PULL 端单向的推送数据流。如果有多个PULL端同时连接到PUSH端,则PUSH端会在内部做一个负载均衡,采用平均分配的算法,将所有消息均衡发布到PULL端上。与发布订阅模型相比,管道模型在没有消费者的情况下,发布的消息不会被消耗掉;在消费者能力不够的情况下,能够提供多消费者并行消费解决方案。该模型主要用于多任务并行。
这4种模型总结出了通用的网络通信模型,在实际中可以根据应用需要,组合其中的2种或多种模型来形成自己的解决方案。
ZMQ提供进程内(inproc://)、进程间(ipc://)、机器间(tcp://)、广播(pgm://)等四种通信协议。
三、zmq编译
1、windows编译
- 解压下载好的zmq源代码
- 打开CMake GUI(图形界面)
- 指定libzmq源代码的位置及生成库文件存储位置,选择计算机内Visual Studio对应版本
- 点击“Configure”以加载项目选项。从弹出窗口中,从列表中选择要使用的编译器。设置必要的项目选项,然后再次单击“配置”
- 单击“Generate”以创建Visual Studio文件。
- 单击“Open Project”; 在Visual Studio中加载后,根据需要选择Debug / Release,然后单击编译。
截图:
2、linux编译
在终端依次输入以下命令
- tar -zxvf zeromq-4.2.1.tar.gz
- cd zeromq-4.2.1
- ./configure -without-libsodium
- make
- sudo make install
- sudo ldconfig
注:第三步可能提示No package ‘libsodium’ found ,libsodium这个Lib是一个可跨平台安装的函式库,主要用于加密、解密与签名用,也是一個基于NaCI的加密库。解決办法:安裝libsodium或者在configure时不去理会这个功能。
于NaCI的加密库。解決办法:安裝libsodium或者在configure时不去理会这个功能。