消息队列及中转软件总结汇编.doc
《消息队列及中转软件总结汇编.doc》由会员分享,可在线阅读,更多相关《消息队列及中转软件总结汇编.doc(10页珍藏版)》请在三一文库上搜索。
1、消息队列及中转软件总结摘要ZeroMQ ActiveMQ Redis MongoDB Memcached 都是开源产品,都可以实现消息中转的功能,但各有不同。ZeroMQ ActiveMQ 消息中转实现形式为队列形式,分布式、集群服务助手。 Redis MongoDB 较成熟的非结构性数据库产品, key-value 数据库,结构松散 的文本型数据库。Memcached高性能的分布式内存对象缓存系统,数据读写速度内存级别。MQ消息队列消息队列(MQ)是一种 应用程序对应用程序的通信方法 。应用程序通过写和 检索出入列队的数据(消息)来通信,而无需专用连接来链接它们。消息传递指 的是程序之间通过
2、在消息中发送数据进行通信,而不是通过直接调用彼此来通 信,直接调用通常是用于诸如远程过程调用的技术。 排队指的是应用程序通过队 列来通信。 队列的使用除去了接收和发送应用程序同时执行的要求, 一般情况下 都需要有一个队列维护服务。 消息服务器在分布式系统各应用间消息通信起到了 至关重要的作用。ZeroMQZeroMQ是一种基于消息队列的多线程网络库, 其对套接字类型、 连接处理、 帧、 甚至路由的底层细节进行抽象,提供跨越多种传输协议的套接字。 ZeroMQ 是非 典型的消息中间件,而且更像是一个网络通信框架ZeroMQ 是网络通信中新的一层,介于应用层和传输层之间(按照TCP/IP划分),其
3、是一个可伸缩层,可并行运行,分散在分布式系统间。ZeroMQ 号称是最快的消息队列系统,尤其针对大吞吐量的需求场景。 ZMQ 能够实现 RabbitMQ 不擅长的高级 / 复杂的队列,但是开发人员需要自己组合多 种技术框架,技术上的复杂度是对 ZMQ能够应用成功的挑战。 ZeroMQ 具有一个 独特的非中间件的模式, 甚至不需要安装和运行一个消息服务器或中间件, 因为 应用程序将扮演这个服务角色。只需要简单的引用 ZeroMQ 程序库,然后就可以 愉快的在应用程序之间发送消息了。但是 ZeroMQ 仅提供非持久性的队列,也就是说如果 down 机,数据将会丢失。其中, Twitter 的 St
4、orm 中使用 ZeroMQ 作 为数据流的传输。ZMQ是个类似于 Socket 的一系列接口,他跟 Socket 的区别是普通的 Socket 是端到端的 (1:1 的关系),而 ZMQ却是可以 N:M 的关系 ,人们对 BSD 套接字的了解较多的是点对点的连接, 点对点连接需要显式地建立连接、 销毁连 接、选择协议( TCP/UDP)和处理错误等,而 ZMQ屏蔽了这些细节,让你的网络 编程更为简单 。ZMQ用于 node 与 node 间的通信,node 可以是主机或者是进程。ZeroMQ 不是单独的服务或者程序, 仅仅是一套组件, 其封装了网络通信、 消 息队列、线程调度等功能,向上层提
5、供简洁的 API ,应用程序通过加载库文件, 调用 API 函数来实现高性能网络通信。ZeroMQ消息模型ZeroMQ将消息通信分成 4 种模型,分别是一对一结对模型 (Exclusive-Pair )、 请求回应模型( Request-Reply )、发布订阅模型( Publish-Subscribe )、 推拉模型( Push-Pull )。这 4 种模型总结出了通用的网络通信模型,在实际中 可以根据应用需要,组合其中的 2 种或多种模型来形成自己的解决方案。1. 一对一: TCP Connection ,TCP Sever 只能接受一个连接,数据双向流动2. 请求回应: 一个服务端对应多
6、个客户端, 每个请求服务端都会给一个回应, 相 当于 1 对 N的方式。3. 发布订阅模型:发布端单向分发数据, 且不关心是否把全部信息发送给订阅端, 天气预报、微博明星粉丝可以应用这种经典模型。4. 推拉模型: Server 端为 push 端,Client 端为 pull 端,如果有多个 Client 端同时连接到 Server 端,则 Server 端会在内部做一个负载均衡,采用平均分 配的算法,均衡推送,改模型主要用于多任务并行。ZeroMQ通信协议: 提供进程内、进程间、机器间、广播等四种通信协议,支持 的具体协议类型有: inproc 、 ipc 、tcp 、 pgm。用类似于 U
7、RL形式的字符串指定即可,格式分别为 inproc:/ 、 ipc:/ 、 tcp:/ 、pgm:/ 。 ZeroMQ会自动根据指定的字符串解析出协议、地址、端口 号等信息。支持常用的多种语言客户端 C+ 、Java 、.Net 、 Python 、 Php 、 Ruby 等。 ZeroMQ性能目前,市面上类似的产品不少, 主要有 4 种:MSM(Q 微软产品) 、ActiveMQ (Java )、RabbitMQ(Erlang) 、ZeroMQ(C+)。除 ZeroMQ外,其它 3 款产 品都是一个单独服务或者进程, 需要单独安装和运行, 且对环境有一定依赖。 其 中, MSMQ在非 Win
8、dows 平台下安装非常复杂, ActiveMQ 需要目标机器上已经 安装了 Java ,RabbitMQ 需要 Erlang 环境。而 ZeroMQ 是以库的形式存在,由 应用程序加载、运行即可。但是 ZeroMQ 仅提供非持久性的消息队列。下图是来自 Internet 的性能测试数据。显示的是每秒钟发送和接受的消息 数。整个过程共产生 1 百万条 1K 的消息,测试环境为 Windows Vista 。从测试 数据可以看出, ZeroMQ的性能远远高于其它 3 个 MQ。ZeroMQ优点:简单1、仅仅提供 24 个 API 接口,风格类似于 BSD Socket 。2、处理了网络异常,包括
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 消息 队列 中转 软件 总结 汇编
链接地址:https://www.31doc.com/p-12718398.html