消息列队组件的一些特性比较

RabbitMQ
基于AMQP实现,传统的messaging queue系统实现,基于Erlang。老牌MQ产品了。AMQP协议更多用在企业系统内,对数据一致性、稳定性和可靠性要求很高的场景,对性能和吞吐量还在其次。
Kafka
linkedin开源的MQ系统,主要特点是基于Pull的模式来处理消息消费,追求高吞吐量,一开始的目的就是用于日志收集和传输,0.8开始支持复制,不支持事务,适合产生大量数据的互联网服务的数据收集业务。
ZeroMQ
只是一个网络编程的Pattern库,将常见的网络请求形式(分组管理,链接管理,发布订阅等)模式化、组件化,简而言之socket之上、MQ之下。对于MQ来说,网络传输只是它的一部分,更多需要处理的是消息存储、路由、Broker服务发现和查找、事务、消费模式(ack、重投等)、集群服务等。
NSQ
基于Go语言的分布式实时消息平台,可用于大规模系统中的实时消息服务,并且每天能够处理数亿级别的消息,其设计目标是为在分布式环境下运行的去中心化服务提供一个强大的基础架构。 NSQ具有分布式、去中心化的拓扑结构,该结构具有无单点故障、故障容错、高可用性以及能够保证消息的可靠传递的特征。NSQ非常容易配置和部署,且具有最大的灵活性,支持众多消息协议。
Redis
是一个Key-Value的NoSQL数据库,虽然它是一个Key-Value数据库存储系统,但它本身支持MQ功能,比如Stack Overflow 使用列队特性与WebSocket结合推送消息与更新缓存策略。

REFER:
NSQ:分布式的实时消息平台
http://www.infoq.com/cn/news/2015/02/nsq-distributed-message-platform/
Apache Kafka:下一代分布式消息系统
http://www.infoq.com/cn/articles/apache-kafka
Kafka是个奇葩!——Linkin论文学习笔记
http://my.oschina.net/HardySimpson/blog/306761
RabbitMQ和NSQ的一些特点的比较
http://datastream.github.io/articles/mq-in-cloud
RabbitMQ与Redis队列对比
http://www.cnblogs.com/chinaboard/p/3819533.html
【消息队列MQ】各类MQ比较
http://blog.csdn.net/sunxinhere/article/details/7968886

时间: 2024-08-03 16:49:47

消息列队组件的一些特性比较的相关文章

Atitit.http连接合并组件   ConnReducerV3 新特性

Atitit.http连接合并组件   ConnReducerV3 新特性 D:\0workspace\AtiPlatf_cms\src\com\attilax\util\ConnReducerV2.java V3 调用::<script type="text/javascript" src="../dsl/new%28com.attilax.util.connReducerV3%29.set_resfile%28mer_info%2Fmer_info_edit_js.

ZeroMQ——一个轻量级的消息通信组件

ZeroMQ是一个轻量级的消息通信组件,尽管名字中包含了"MQ",严格上来讲ZeroMQ并不是"消息队列/消息中间件".ZeroMQ是一个传输层API库, 更关注消息的传输.与消息队列相比,ZeroMQ有以下一些特点: 点对点无中间节点 传统的消息队列都需要一个消息服务器来存储转发消息.而ZeroMQ则放弃了这个模式,把侧重点放在了点对点的消息传输上,并且(试图)做到极致.以为消息服务器最终还是转化为服务器对其他节点的点对点消息传输上.ZeroMQ能缓存消息,但是是

ZeroMQ——一个轻量级的消息通信组件 C#

ZeroMQ——一个轻量级的消息通信组件 ZeroMQ是一个轻量级的消息通信组件,尽管名字中包含了"MQ",严格上来讲ZeroMQ并不是"消息队列/消息中间件".ZeroMQ是一个传输层API库, 更关注消息的传输.与消息队列相比,ZeroMQ有以下一些特点: 点对点无中间节点 传统的消息队列都需要一个消息服务器来存储转发消息.而ZeroMQ则放弃了这个模式,把侧重点放在了点对点的消息传输上,并且(试图)做到极致.以为消息服务器最终还是转化为服务器对其他节点的点对点

NTCPMSG 开源高性能TCP消息发送组件

https://www.cnblogs.com/eaglet/archive/2013/01/07/2849010.html 目前的.net 架构下缺乏高效的TCP消息发送组件,而这种组件是构建高性能分布式应用所必需的.为此我结合多年的底层开发经验开发了一个.net 下的高效TCP消息发送组件.这个组件在异步发送时可以达到每秒160万包,而相同大小的数据包用WCF的TCP模式OneWay 方式发送每秒只能达到5.6万包. 项目首页 http://ntcpmsg.codeplex.com/ 功能介

千万PV 网站架构之 RabbitMQ 消息列队

RabbitMQ 简介 : MQ全称为Message Queue,消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们.消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术.排队指的是应用程序通过 队列来通信.队列的使用除去了接收和发送应用程序同时执行的要求.其中较为成熟的MQ产品有IBM WEBSPHERE MQ等等. MQ特点 MQ是消费-

C#操作消息列队

首先安装消息队列MSMQ,在"计算机管理-服务和应用程序-消息队列-专用队列"中新建列队名称Demo: static void SendAndReceiveMsg() { MessageQueue mq =new MessageQueue(); mq.Path = @".\Private$\Demo"; //构造消息 Message msg =new Message(); msg.Body ="Hello MessageQueue"; //向队列

Asp.net 面向接口可扩展框架之消息队列组件

消息队列对大多数人应该比较陌生.但是要提到MQ听说过的人会多很多.MQ就是英文单词"Message queue"的缩写,翻译成中文就是消息队列(我英语差,翻译错了请告知). PS:话说国人熟悉MQ比消息队列多,是不是因为国人的外语水平高于国语水平好几个数量级 1.看一下度娘怎么解释消息队列 参考链接:消息队列_百度百科 度娘解释消息队列是在两台计算机间传输的,套句很时髦的说法就是用来做分布式传输的,是个很高大上的东西 2.我的看法稍有不同 我更追溯到“消息队列”的字面“本源”的意思.我

winform 消息通讯组件实习

最近在项目上要做一个消息推送的组件,实习医生站和护士站通讯的组件,医生站开立医嘱后通知护士需要审核医嘱,会诊医嘱审核之后通知会诊医生会诊,我相信在其他项目上也会用到,在这里先总结一下,留着备用.废话少说,直奔主题. 第一步,创建l两个个表,如果不用表也可以用xml存. 脚步如下: 1 -- Create table 2 create table COM_SYS_MSG 3 ( 4 msg_id NUMBER(10) not null, 5 msg_title VARCHAR2(50), 6 ms

使用内存映射开发高性能进程间消息通信组件

一.背景 项目开发中免不了各模块或系统之间进行消息通信,目前热门的消息中间件有Redis.RabbitMQ.Kafka.RocketMQ等等. 以上几种组件中Redis在消息队列方面表现还可以,但是如果涉及发布订阅功能,就不行了,最近项目就使用了redis的发布订阅, 每秒只能发出几千条,虽然目前绰绰有余,但是瓶颈可以预期. 其余的几种都是比较重量级的消息中间件,什么跨平台.分布式.集群.支持N种协议等等,很高大全, 我们可能就只使用了其中1.2个功能.严格来说,项目中集成这几种MQ的工作量是不