nanomsg库下载安装和使用模式
文章目录
1.概述
2.下载和安装
2.1.下载地址
2.2 POSIX (Linux, MacOS X, UNIX)安装准备
2.2.4.Ubuntu编译
3.使用模式
3.1.概述
3.2.Pipeline (A One-Way Pipe)管道(单向管道)
3.3.Request/Reply (I ask, you answer)请求/回复(我问,你答)
3.4.Pair (Two Way Radio)配对(双向无线电)
3.5.Pub/Sub (Topics & Broadcast)发布/订阅(主题和广播)
3.6.Survey (Everybody Votes)调查(所有人投票)
3.7.Bus (Routing) 总线(路由)
4 各模式示例代码官网地址
nanomsg库是几个“可伸缩性协议”的简单高性能实现。这些可伸缩性协议是轻量级的消息传递协议,可用于解决许多非常常见的消息传递模式,如请求/应答、发布/订阅、测量者/应答者等。这些协议可以在各种传输上运行,如TCP、UNIX套接字,甚至WebSocket。
2.1.下载地址
https://github.com/nanomsg/nanomsg
当前版本:1.1.5, released on October 15, 2018.
2.2 POSIX (Linux, MacOS X, UNIX)安装准备
ANSI C compiler supporting C89
POSIX pthreads (should be present on all modern POSIX systems)
BSD sockets support for both TCP and UNIX domain sockets
CMake (http://cmake.org) 2.8.7 or newer, available in $PATH as cmake
2.2.4.Ubuntu编译
安装cmake
sudo snap install cmake(sudo snap install cmake --classic)
官方描述的编译步骤
md build
cd build
cmake ..
cmake --build . --config Debug
ctest -C Debug .
sudo cmake --build . --config Debug --target install
备注,调整安装路径方式:
chmod 777 configure
./configure --prefix=/home/share/linuxlib/nanomsg
3.1.概述
Pipeline (A One-Way Pipe)管道(单向管道)
Request/Reply (I ask, you answer)请求/回复(我问,你答)
Pair (Two Way Radio)配对(双向无线电)
Pub/Sub (Topics & Broadcast)发布/订阅(主题和广播)
Survey (Everybody Votes)调查(所有人投票)
Bus (Routing) 总线(路由)
使用方式示例:https://nanomsg.org/gettingstarted/index.html#
3.2.Pipeline (A One-Way Pipe)管道(单向管道)
3.2.1.模式
此模式对于解决生产者/消费者问题(包括负载平衡)非常有用。消息从推侧流向拉侧。如果连接了多个对等点,则模式将尝试公平分布。
3.3.Request/Reply (I ask, you answer)请求/回复(我问,你答)
3.3.1.模式
请求/应答用于同步通信,在同步通信中,每个问题都用一个单一的应答来响应,例如远程过程调用(rpc)。与管道一样,它也可以执行负载平衡。这是套件中唯一可靠的消息传递模式,因为如果请求与响应不匹配,它将自动重试。
3.4.Pair (Two Way Radio)配对(双向无线电)
3.4.1.模式
当存在一对一对等关系时,使用对模式。一次只能有一个对等点连接到另一个对等点,但两个对等点都可以自由发言。
3.5.Pub/Sub (Topics & Broadcast)发布/订阅(主题和广播)
3.5.1.模式
此模式用于允许单个广播公司向多个订阅者发布消息,订阅者可以选择限制他们接收的消息。
3.6.Survey (Everybody Votes)调查(所有人投票)
3.6.1.模式
测量员模式用于发送超时的测量,在测量结束前单独返回响应。此模式对于服务发现和投票算法非常有用。
3.7.Bus (Routing) 总线(路由)
3.7.1.模式
总线协议对于路由应用程序或构建完全互连的网状网络非常有用。在此模式中,消息被发送到每个直接连接的对等方。
https://nanomsg.org/gettingstarted