- 博客(11)
- 资源 (5)
- 收藏
- 关注
原创 zeromq源代码分析6-3------ROUTER和DEALER
zeromq的zero表明它木有broker,但是并不代表着他不能有broker,而是作为device选项,使用ROUTER socket和DEALER socket就可以模拟一个简单broker。可以从tutorial中看到模拟的代码://// Simple request
2011-07-24 23:52:46 18034 2
原创 zeromq源代码分析6-2------REQ和REP
本文我们讲一下req和rep这对zeromq的socket。这是一个经典的Request-Reply的例子。
2011-07-22 17:19:03 11724 1
原创 zeromq源代码分析6-1------zeromq各种类型的socket之socket_base
我们在zeromq源代码分析6中分析zeromq所有类型的socket,主要集中分析send和recv函数。今天我们先分析一下所有socket中base class------socket_base:先看send(2)函数:int zmq::socket_base_t::send
2011-07-22 16:31:43 9438
原创 zeromq源代码分析5-3------管道相关的数据结构yqueue, ypipe, pipe等
这篇文章我们讲一下pipe, 从前面的博文中你了解了zeromq数据读写是异步的,主要与管道交互。先说一下pipe的基本功能吧:1. 流量控制: 有一个HWM(最高水位), LWM(最低水位)和active标志。2. 通过发送终结符类型的消息来销毁管道。3. swap模式。一个
2011-07-21 17:35:58 6430
原创 zeromq源代码分析5-2------管道相关的数据结构yqueue, ypipe, pipe等
本文我们来讲一下ypipe的实现。其实ypipe就是上一篇文章中提到的yqueue的一个为lock-free的封装加强实现。ypipe主要有写入write(), 读取read(), flush()的功能。当一个元素被写入管道的时候,如果不调用flush()函数,那么是不能从该管道
2011-07-21 15:35:09 8929 2
原创 zeromq源代码分析5-1------管道相关的数据结构yqueue, ypipe, pipe等
本文主要分析管道相关的数据结构yqueue, ypipe, pipe等。我们一个个来分析,先看yqueue:yqueue是一个高效的队列实现。它主要通过批量的分配/释放数据元素来减少分配/释放的次数来提高效率。而所谓的批量分配的数据结构称之为chunk_t: // Indivi
2011-07-21 12:22:16 7169 5
原创 zeromq源代码分析4------encoder,decoder,multipart_message
decoder_base中的:unsigned char *read_pos; // 从缓冲区读出的内存区域位置,指向in_progress的数据区域或者tmpbuf size_t to_read; // 从缓冲区读出的大小 step_t ne
2011-07-20 21:12:47 7408
原创 zeromq源代码分析3------zeromq中的消息
本文主要讲zeromq的消息体系zmq_msg_t及其相关的操作函数。因为tcp是一种字节流类型的协议,木有边界,所以把该消息边界的制定留给了应用层。通常有两种方式实现:1. 在传输的数据中添加分隔符。2. 在每条消息中添加size字段。而zeromq可以说选择了第二种方式。先来
2011-07-20 14:10:14 13713 11
原创 asio reactor模拟Proactor代码分析笔记
今天看了ASIO的介绍,不太明白asio在POSIX上如何用reactor模拟proactor。所以稍微看了下源代码,此文当作笔记。ASIO Proactor: Proactor design pattern (adapted from [POSA2])
2011-07-25 22:30:56 6606 2
zthread patch
2011-08-22
zeromq performance test using shared message method 2
2011-08-02
zeromq performance test using shared message method 1
2011-08-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人