随笔分类 - 协议栈
摘要:// 2015-02-27T11:40+08:00 // ROUTER-to-DEALER example #include "../zhelpers.h" #include <pthread.h> #define NBR_WORKERS 10 static void * worker_task(v
        阅读全文
            
摘要:ROUTER-DEALER是一种最简单的路由方式。将ROUTER和多个DEALER相连接,用一种合适的算法来决定如何分发消息给DEALER。DEALER可以是一个黑洞(只负责处理消息,不给任何返回)、代理(将消息转发给其他节点)或是服务(会发送返回信息)。 如果你要求DEALER能够进行回复,那就要
        阅读全文
            
摘要:在请求-应答模式中,信封里保存了应答目标的位置。这就是为什么ØMQ网络虽然是无状态的,但仍能完成请求-应答的过程。 在一般使用过程中,你并不需要知道请求-应答信封的工作原理。使用REQ、REP时,ØMQ会自动处理消息信封。下一章讲到的装置(device),使用时也只需保证读取和写入所有的信息即可。Ø
        阅读全文
            
摘要:当你想要对节点进行协调时,PAIR套接字就不怎么合适了,这也是线程和节点之间的不同之处。一般来说,节点是来去自由的,而线程则较为稳定。使用PAIR套接字时,若远程节点断开连接后又进行重连,PAIR不会予以理会。 第二个区别在于,线程的数量一般是固定的,而节点数量则会经常变化。让我们以气象信息模型为基
        阅读全文
            
摘要:ZMQ多线程编程基本规则: 不要在不同的线程之间访问同一份数据,如果要用到传统编程中的互斥机制,那就有违ZMQ的思想了。唯一的例外是ZMQ上下文对象,它是线程安全的。 必须为进程创建ZMQ上下文,并将其传递给所有你需要使用inproc协议进行通信的线程; 你可以将线程作为单独的任务来对待,使用自己的
        阅读全文
            
摘要:下面让我们在请求-应答模式中编写一个小型的消息队列代理装置。 在Hello World客户/服务模型中,一个客户端和一个服务端进行通信。但在真实环境中,我们会需要让多个客户端和多个服务端进行通信。关键问题在于,服务端应该是无状态的,所有的状态都应该包含在一次请求中,或者存放其它介质中,如数据库。 我
        阅读全文
            
摘要:我们经常会需要将发布-订阅模式扩充到不同类型的网络中。比如说,有一组订阅者是在外网上的,我们想用广播的方式发布消息给内网的订阅者,而用TCP协议发送给外网订阅者。 我们要做的就是写一个简单的代理服务装置,在发布者和外网订阅者之间搭起桥梁。这个装置有两个端点,一端连接内网上的发布者,另一端连接到外网上
        阅读全文
            
摘要:下面一个示例程序中,我们将使用ZMQ进行超级计算,也就是并行处理模型: 任务分发器会生成大量可以并行计算的任务; 有一组worker会处理这些任务; 结果收集器会在末端接收所有worker的处理结果,进行汇总。 taskvent: #include <stdlib.h> #include <zmq.
        阅读全文
            
摘要:简单来说,就是服务端不断发布消息,客户端订阅了就会收到消息。 下面我们看个简单的实例: Server: #include <stdlib.h> #include <zmq.h> #include <string.h> #include <unistd.h> #include <time.h> #de
        阅读全文
            
摘要:有时候我们需要获取zmq的版本号: #include <zmq.h> int main(int argc, char* argv[]) { int major, minor, patch; zmq_version (&major, &minor, &patch); printf ("当前ZMQ版本号
        阅读全文
            
摘要:提问-应答 让我们从简单的代码开始,一段传统的Hello World程序。我们会创建一个客户端和一个服务端,客户端发送Hello给服务端,服务端返回World。 Server #include <stdio.h> #include <zmq.h> #include <string.h> #inclu
        阅读全文
            
 
                    
                     
                    
                 
                    
                 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号