用Python操作nanomsg(一)——准备

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用Python操作nanomsg(一)——准备相关的知识,希望对你有一定的参考价值。

参考技术A

日前因工作需要,整在一点一点熟悉开源跨平台消息中间件: nanomsg ,恰逢最近安装了 Typora 用于练习Markdown语法,那就一并把学习总结整理记录下来并同步更新到方便他人和自己日后回看。

nnpy是其中一个对nanomsg的python wrapper,相比于nanomsg-python日渐缺少维护,更推荐使用nnpy。另外,现在也有了nng(nanomsg next negeration),当nanomsg使用熟练后可考虑转nng。

本文基于Pyhton3.7,当前nnpy的最新版本为 1.4.2 ,依次安装cmake、nanomsg、cffi和nnpy:

这里使用的开发环境为 Jetbrains Pycharm 2019 + WSL ,WSL使用的是Kali-Linux,其他版本如Ubuntu、Debian等也都可以。

我本机装的是Python 3.6,点击右下角当前正在使用的本地解析器名称 Python 3.6 ,选择 Add Interpreter

从左侧选择 WSL 后,右侧面板自动出来当前的WSL发行版本,注意的是这里默认的解析器路径为/usr/bin/python,Kali-Linux默认安装的时候只有python3没有python,需要手动改为 /usr/bin/python3

而后点击 OK 完成WSL Interpreter的添加,在右下角选择 3.7@Kali Linux 即可启用WSL作为远程开发环境——不需要SSH、虚拟机或VPS就能在Windows下进行Linux开发,简直不要太舒服!!

nanomsg提供了如下几种通信模式,太具体的不介绍,说完会用就明白是怎么回事儿了:

PipeLine

PushPub

Pair

ReqRep

Survey

Bus :

关于各通信模式的验证请前往本系列后续文章:

nanomsg安装和测试

    最近在构建一个中间层的通信架构,本来想用dbus,在实验过程中发现dbus对于国产系统支持版本比较低,安装比较麻烦,今天无意中看中了nanomsg,尽管没有dbus那么强悍的生态,但基本能满足需求。

    nanomsg是一个轻量级的消息通信组件,是zeromq的作者之一用C语言去重写的通信框架,其无需进一步依赖,可在多种操作系统运行。介绍就不多说了,可直接去官网查询,该官网是我目前见过感觉最简洁大方的网站。

更多内容可关注公众号

 技术图片

 

官网地址:https://nanomsg.org/

技术图片

 

源码地址: 

https://github.com/nanomsg/nanomsg/releases

 

  • 安装(主要参考源码里的README文件)

    1,下载最新源码release1.1.5版本,解压源码,进入源码目录

                 技术图片

           2,nanomsg使用cmake编译安装,安装cmake。

                 技术图片

            3,创建build文件夹用于存放cmake生成的makefile。进入build,camke编译,指定安装目录。

                 技术图片

            4,cmake  --build  .

                技术图片技术图片

             5,ctest .

               技术图片技术图片

              6,cmake --build . --target install      

               技术图片

               7,sudo ldconfig

               技术图片

               8,安装完成,test文件夹为我创建,用于存放下面的测试用例。

               技术图片

  • 测试

官网有很多测试的例子,主要测试了nanomsg的几种模式。

我们用管道测试。此模式对于解决生产者/消费者问题(包括负载平衡)很有用。消息从推送侧流向推送侧。如果连接了多个对等方,则该模式将尝试公平分配。

用例源码地址:

https://nanomsg.org/gettingstarted/pipeline.html

将源码保存到本地文件,存储为pipeline.c

编译:gcc pipeline.c -lnanomsg -o pipeline -I ../include/ -L ../lib/

技术图片

启动接收管道0

技术图片

启动管道1发送Hello World!

启动管道1发送Goodbye

技术图片

最后不要忘记杀死管道0。

测试没有问题,至此nanomsg安装完成。

以上是关于用Python操作nanomsg(一)——准备的主要内容,如果未能解决你的问题,请参考以下文章

nanomsg

nanomsg

QSocketNotifier 与 nanomsg

nanomsg安装和测试

如何利用python使用libsvm

Thrift, Nats, gRPC, Nanomsg... 哪一个是EdgeX的选择?