ZeroMQ使用汇总

ZeroMQ,史上最快的消息队列 —– ZMQ的学习和研究

ZeroMQ 的模式

[架构] ZeroMQ 深度探索(一)

 消息队列ZeroMQ

服务端使用流程:

  

void* m_Context;
void* m_sktMsgVideoFrame;

m_sktMsgVideoFrame = zmq_socket(m_Context,ZMQ_PUB);
    int ret = zmq_bind(m_sktMsgVideoFrame,bytesMsgVideoFrameAddress.data());

 zmq_msg_t msg;

   zmq_msg_init_size(&msg,frameBuffSize+MIN_MSG_LEN);
   memcpy(zmq_msg_data(&msg),MSG_VIDEO_FRAME,5);

   memcpy((char*)zmq_msg_data(&msg)+5, frameBuff, frameBuffSize); //

   int iRet = zmq_msg_send(&msg, (zmq_msg_t*)m_sktMsgVideoFrame, 0);

   zmq_msg_close(&msg);

zmq_close(m_sktMsgVideoFrame);
zmq_ctx_shutdown(m_Context);

  

客户端流程:

QByteArray bytesMsgControlAddress = g_strMsgControlAddress.toUtf8();
    QByteArray bytesMsgReqCaptureRetAddress = g_strMsgReqCaptureRetAddress.toUtf8();
    QByteArray bytesMsgVideoFrameAddress = g_strMsgVideoFrameAddress.toUtf8();

    void* context = zmq_ctx_new();

    void* m_pSktMsgControl = zmq_socket(context, ZMQ_SUB);
    int ret = zmq_connect(m_pSktMsgControl,bytesMsgControlAddress.data());
    qDebug()<<"MSG_CONTROL PULL 连接地址:"<<g_strMsgControlAddress;
    qDebug()<<"MSG_CONTROL PULL 连接结果:"<<ret;
    ret = zmq_setsockopt(m_pSktMsgControl, ZMQ_SUBSCRIBE, "", 0);/// 必须添加该语句对消息滤波,否则接受不到消息

    void* m_pSktMsgReqCaptureRet = zmq_socket(context, ZMQ_SUB);
    ret = zmq_connect(m_pSktMsgReqCaptureRet, bytesMsgReqCaptureRetAddress.data());
    qDebug()<<"MSG_REQ_CAPUTRE_RET PULL 连接地址:"<<g_strMsgReqCaptureRetAddress;
    qDebug()<<"MSG_REQ_CAPUTRE_RET PULL 连接结果:"<<ret;

    ret = zmq_setsockopt(m_pSktMsgReqCaptureRet, ZMQ_SUBSCRIBE, "", 0);/// 必须添加该语句对消息滤波,否则接受不到消息

    void* m_pSktVideoFrame = zmq_socket(context, ZMQ_SUB);
    ret = zmq_connect(m_pSktVideoFrame, bytesMsgVideoFrameAddress.data());    

    qDebug()<<"MSG_VIDEO_FRAME PULL 连接地址:"<<g_strMsgVideoFrameAddress;
    qDebug()<<"MSG_VIDEO_FRAME PULL 连接结果:"<<ret;

    ret = zmq_setsockopt(m_pSktVideoFrame, ZMQ_SUBSCRIBE, "", 0);/// 必须添加该语句对消息滤波,否则接受不到消息

zmq_msg_t msg;
    int responseLen = zmq_msg_init(&msg);
    responseLen = zmq_msg_recv(&msg,receiver, ZMQ_DONTWAIT);

zmq_msg_close(&msg);

zmq_close(m_pSktMsgControl);
    zmq_close(m_pSktMsgReqCaptureRet);
    zmq_close(m_pSktVideoFrame);

    zmq_ctx_shutdown(context);

  

时间: 2024-07-30 23:14:40

ZeroMQ使用汇总的相关文章

RabbitMq、ActiveMq、ZeroMq、kafka之间的比较,资料汇总

MQ框架非常之多,比较流行的有RabbitMq.ActiveMq.ZeroMq.kafka.这几种MQ到底应该选择哪个?要根据自己项目的业务场景和需求.下面我列出这些MQ之间的对比数据和资料. 第一部分:RabbitMQ,ActiveMq,ZeroMq比较 1. TPS比较 一 ZeroMq 最好,RabbitMq 次之, ActiveMq 最差.这个结论来自于以下这篇文章. http://blog.x-aeon.com/2013/04/10/a-quick-message-queue-benc

死亡的协议--- Pieter Hintjens&#160;(ZeroMQ作者)

过去几年中用zeromq写过几个系统系统.对ZeroMQ强大和灵活印象非常深刻.在阅读zeromq guide文档时候.发现作者整理各种通信模式非常经典和实用,可以作为分布式通信的教科书来看.第一次见到这么有价值的开源框架说明文档 .  Pieter Hintjens   2010诊断出胆管癌,并成功手术切除.最近 (2016年4月)发现癌症大面积扩散到肺部,已经无法治疗. 他写的最后一篇通信模式是关于死亡协议. 原文地址是 A Protocol for Dying http://hintjen

运维人员必须熟悉的运维工具汇总

运维人员必须熟悉的运维工具汇总 操作系统 :Centos※,Ubuntu,Redhat※,suse,Freebsd网站服务 :nginx※,apache※,tomcat※,lighttpd,php※,resin※数据库     :MySQL※,Mysql-proxy,MariaDB,PostgreSQLDB中间件:MyCat,amoeba,MySQL-proxy代理相关:lvs,keepalived,haproxy,nginx,apache,heartbeat(此行都是※)网站缓存:squid※

一共81个,开源大数据处理工具汇总(下)

接上一部分:一共81个,开源大数据处理工具汇总(上),第二部分主要收集整理的内容主要有日志收集系统.消息系统.分布式服务.集群管理.RPC.基础设施.搜索引擎.Iaas和监控管理等大数据开源工具. 日志收集系统 一.Facebook Scribe 贡献者:Facebook 简介:Scribe是Facebook开源的日志收集系统,在Facebook内部已经得到大量的应用.它能够从各种日志源上收集日志,存储到一个中央存储系统(可以是NFS,分布式文件系统等)上,以便于进行集中统计分析处理.它为日志的

一共81个,开源大数据处理工具汇总(下),包括日志收集系统/集群管理/RPC等

作者:大数据女神-诺蓝(微信公号:dashujunvshen).本文是36大数据专稿,转载必须标明来源36大数据. 接上一部分:一共81个,开源大数据处理工具汇总(上),第二部分主要收集整理的内容主要有日志收集系统.消息系统.分布式服务.集群管理.RPC.基础设施.搜索引擎.Iaas和监控管理等大数据开源工具. 日志收集系统 一.Facebook Scribe 贡献者:Facebook 简介:Scribe是Facebook开源的日志收集系统,在Facebook内部已经得到大量的应用.它能够从各种

(转)一共81个,开源大数据处理工具汇总

[思路网注] 本文一共分为上下两部分.我们将针对大数据开源工具不同的用处来进行分类,并且附上了官网和部分下载链接,希望能给做大数据的朋友做个参考. 本文一共分为上下两部分.我们将针对大数据开源工具不同的用处来进行分类,并且附上了官网和部分下载链接,希望能给做大数据的朋友做个参考.下面是第一部分. 查询引擎 一.Phoenix 贡献者::Salesforce 简介:这是一个Java中间层,可以让开发者在Apache HBase上执行SQL查询.Phoenix完全使用Java编写,代码位于GitHu

zeromq安装---php-zmq

安装zeromq wget http://download.zeromq.org/zeromq-4.0.5.tar.gztar -zxvf zeromq-4.0.5.tar.gzcd zeromq-4.0.5cd foreign/openpgm/tar -zxvf libpgm-5.2.122~dfsg.tar.gz./configure --prefix=/data/klj/zeromq --with-pgm=libpgm-5.2.122~dfsgmakemake install 安装php-

[转载] 一共81个,开源大数据处理工具汇总(下),包括日志收集系统/集群管理/RPC等

原文: http://www.36dsj.com/archives/25042 接上一部分:一共81个,开源大数据处理工具汇总(上),第二部分主要收集整理的内容主要有日志收集系统.消息系统.分布式服务.集群管理.RPC.基础设施.搜索引擎.Iaas和监控管理等大数据开源工具. 日志收集系统 一.Facebook Scribe 贡献者:Facebook 简介:Scribe是Facebook开源的日志收集系统,在Facebook内部已经得到大量的应用.它能够从各种日志源上收集日志,存储到一个中央存储

RabbitMQ,Apache的ActiveMQ,阿里RocketMQ,Kafka,ZeroMQ,MetaMQ,Redis也可实现消息队列,RabbitMQ的应用场景以及基本原理介绍,RabbitMQ基础知识详解,RabbitMQ布曙

消息队列及常见消息队列介绍 2017-10-10 09:35操作系统/客户端/人脸识别 一.消息队列(MQ)概述 消息队列(Message Queue),是分布式系统中重要的组件,其通用的使用场景可以简单地描述为: 当不需要立即获得结果,但是并发量又需要进行控制的时候,差不多就是需要使用消息队列的时候. 消息队列主要解决了应用耦合.异步处理.流量削锋等问题. 当前使用较多的消息队列有RabbitMQ.RocketMQ.ActiveMQ.Kafka.ZeroMQ.MetaMq等,而部分数据库如Re