ZeroMQ中PUB-SUB模式测试

    由于公司有需求,对程序模块之间通讯效率有较高的需求。以前公司用的通讯组件是ActiveMQ,根据网上公布的测试结果显示其效率比较低, 后来考虑准备在新的项目中开始使用ZeroMQ。看了几天发现用起来比较简单,可是不知道怎么用进咱们的项目中,加之项目比较着急就搁浅了,转而选择了与socketAPI相近的boost库中的Asio库,由于本人比较菜,最近测试发现了各类坑!!!各类坑!!!(对Asio不熟悉的童鞋对新项目慎用)linux

    而后最近就又开始看ZeroMQ,发现网上demo程序很多,可是解释清楚的不多,因此在这里记录测试记录,并督促本身善始善终。官网上有很好的demo程序,我就不贴出来了,要注意的是,demo都是最新的Linux版本的,因此源码最好也是下载最新的,windows上编译须要稍微改动。编程

    ZeroMQ推崇模式编程,第一种请求应答没什么说的。第二种PUB-SUB模式中,服务端没什么,对客户端的配置接口有疑问:windows

    int zmq_setsockopt (void *s, int option, const void *optval, size_t optvallen);socket

    参数一:socket句柄;测试

    参数二:socket的模式,这里由于是客户端,因此是订阅模式:ZMQ_SUBSCRIBE;blog

    参数三:订阅关键字;接口

    参数四:参数三的长度;文档

对于参数三,官方文档:源码



该接口必须显示调用,不然为不订阅,测试结果:
char *filter = (argc > 1) ? argv[1] : "";
rc = zmq_setsockopt(subscriber, ZMQ_SUBSCRIBE, filter, strlen(filter));
不过滤,会订阅全部信息;

若是
filter = “test ”;则订阅以“test ”为开头的信息,中间出现关键字的信息不会接收到,(!!测试中,对于关键字中的空格“ ”,linux彻底匹配,windows下不一样环境测试结果不一致,待验证);到这里PUB-SUB模式在一对多的情景中,可使用了。
相关文章
相关标签/搜索