ZeroMQ-0.1.1源码分析

ZeroMQ是一个分布式消息处理架构,是由C++语言实现的,其底层传输协议支持TCP, UDP,多播, POSIX IPC等实现.在后续的开发中,陆续实现了以C, Java, PHP, Python等语言实现的版本,但是非C++的实现版本中,底层传输协议支持的比较有限,但基本上均支持TCP协议.以C++实现的ZeroMQ分布式消息引擎的github源码工程请参考:GitHub - zeromq/libzmq: ZeroMQ core engine in C++, implements ZMTP/3.1

在大多数消息系统的架构设计中,都存在一个消息服务器,称之为broker.应用程序连接到broker,通过broker与其他应用程序进行消息通讯.这种架构的优点是:应用程序不必知道它所通讯的其他应用程序的位置;消息发送者和消息接收者的生命周期也不必重合.broker对于解耦应用程序设计有很大的优势.但是broker架构存在的挑战是,如果系统中消息数量比较大,消息服务器可能是整个系统的性能瓶颈.其次,因为存在着中心节点broker,需要考虑单点故障的情况.关于消息系统中进行broker设计(或者无broker设计)的介绍可以参考Broker vs. Brokerless - zeromq

ZeroMQ-0.1.1是其初始发布的第二个版本,实现了一个高性能的异步IO架构,来进行应用程序间的消息通讯.这个版本中并没有实现broker架构,因此也没有实现发布(publisher)/订阅(subscriber)等典型的处理机制.ZeroMQ-0.1.1是作为一个嵌入式的库整合到应用程序之中.

在ZeroMQ后续发布的高版本中,整合了微软的Visual studio 集成开发环境, 可以在Windows系统下进行源码编译和管理,请参考ZeroMQ工程目录builds/msvc下面的配置文件.ZeroMQ-0.1.1只是提供了在类linux系统中,用make进行编译的方式,为了在linux系统下方便的阅读代码和开发,可以使用Eclipse IDE编译源码工程.有2个细节需要注意的是:通常IDE中会添加一个include目录来管理头文件, ZeroMQ-0.1.1源码工程中,有些文件include其他头文件的路径需要调整.其次,ZeroMQ的C++实现中,扩展名hpp的是头文件,但是內联实现了很多类定义和函数定义,但是这种文件还是要放到IDE中的include目录下面.用Eclipse IDE管理ZeroMQ-0.1.1源码的目录结构及文件如下图所示:
这里写图片描述
这里写图片描述

TODO: ZeroMQ-0.1.1源码分析之消息处理引擎

(493条消息) ZeroMQ-0.1.1源码分析_azurelaker的博客-CSDN博客_zeromq源码分析

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值