目前业界有很多MQ产品,我们作如下对比:
RabbitMQ
是使用Erlang编写的一个开源的消息队列,本身支持很多的协议:AMQP,XMPP, SMTP, STOMP,也正是如此,使的它变的非常重量级,更适合于企业级的开发。同时实现了一个经纪人(Broker)构架,这意味着消息在发送给客户端时先在中心队列排队。对路由(Routing),负载均衡(Load balance)或者数据持久化都有很好的支持。
Redis
是一个Key-Value的NoSQL数据库,开发维护很活跃,虽然它是一个Key-Value数据库存储系统,但它本身支持MQ功能,所以完全可以当做一个轻量级的队列服务来使用。对于RabbitMQ和Redis的入队和出队操作,各执行100万次,每10万次记录一次执行时间。测试数据分为128Bytes、512Bytes、1K和10K四个不同大小的数据。实验表明:入队时,当数据比较小时Redis的性能要高于RabbitMQ,而如果数据大小超过了10K,Redis则慢的无法忍受;出队时,无论数据大小,Redis都表现出非常好的性能,而RabbitMQ的出队性能则远低于Redis。
|
入队 |
出队 |
||||||
|
128B |
512B |
1K |
10K |
128B |
512B |
1K |
10K |
Redis |
16088 |
15961 |
17094 |
25 |
15955 |
20449 |
18098 |
9355 |
RabbitMQ |
10627 |
9916 |
9370 |
2366 |
3219 |
3174 |
2982 |
1588 |
ZeroMQ
号称最快的消息队列系统,尤其针对大吞吐量的需求场景。ZMQ能够实现RabbitMQ不擅长的高级/复杂的队列,但是开发人员需要自己组合多种技术框架,技术上的复杂度是对这MQ能够应用成功的挑战。ZeroMQ具有一个独特的非中间件的模式,你不需要安装和运行一个消息服务器或中间件,因为你的应用程序将扮演了这个服务角色。你只需要简单的引用ZeroMQ程序库,可以使用NuGet安装,然后你就可以愉快的在应用程序之间发送消息了。但是ZeroMQ仅提供非持久性的队列,也就是说如果down机,数据将会丢失。其中,Twitter的Storm中使用ZeroMQ作为数据流的传输。
ActiveMQ
是Apache下的一个子项目。 类似于ZeroMQ,它能够以代理人和点对点的技术实现队列。同时类似于RabbitMQ,它少量代码就可以高效地实现高级应用场景。RabbitMQ、ZeroMQ、ActiveMQ均支持常用的多种语言客户端 C++、Java、.Net,、Python、 Php、 Ruby等。
Jafka/Kafka
Kafka是Apache下的一个子项目,是一个高性能跨语言分布式Publish/Subscribe消息队列系统,而Jafka是在Kafka之上孵化而来的,即Kafka的一个升级版。具有以下特性:快速持久化,可以在O(1)的系统开销下进行消息持久化;高吞吐,在一台普通的服务器上既可以达到10W/s的吞吐速率;完全的分布式系统,Broker、Producer、Consumer都原生自动支持分布式,自动实现复杂均衡;支持Hadoop数据并行加载,对于像Hadoop的一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka通过Hadoop的并行加载机制来统一了在线和离线的消息处理,这一点也是本课题所研究系统所看重的。Apache Kafka相对于ActiveMQ是一个非常轻量级的消息系统,除了性能非常好之外,还是一个工作良好的分布式系统。
其他一些队列列表HornetQ、Apache Qpid、Sparrow、Starling、Kestrel、Beanstalkd、Amazon SQS就不再一一分析。
相关推荐
MQ中间件整理的思维导图,emmx格式,需要下载mindmaster自己行打开,各类中间件使用场景、功能对比等
hanlp分词各类词性状态表: 比如: a 形容词 ad 副形词 b 区别词 n 名词 h 前缀 i 成语 j 简称略语 k 后缀 l 习用语 m 数词 mg 数语素 Mg 甲乙丙丁之类的数词 mq 数量词
开发MT4交易平台智能交易系统需使用MQL4语言,本书详细介绍了MQL4的使用方法,介绍了各类语法、函数
mq: 各类mq客户端,集成到应用 example: 测试案例和示例代码 原理 分布式事务的三种实现方式,包括可靠事件模式、业务补偿模式、TCC模式。 可靠事件系统Tarzan是基于可靠事件模式的分布式事务解决方案。 参考: 设计...
报表前端采用Bootstrap框架,结合Jquery Ajax,整合前端Layer.js(提供弹窗)+Bootstrap-table(数据列表展示)+ Bootstrap-Export(各种报表导出SQL,Excel,pdf等)框架,整合Echars,各类图表的展示(折线图,饼图...
涵盖各类java知识点:基础/jvm/集合/并发/spring/微服务/网络/MQ/分布式 很多
因此,了解并掌握各类传感器的基本结构、工作原理及特性是非常重要的。 本论文以MQ-2半导体传感器和单片机技术为核心设计的气体报警器可实现声光报警功能,是一种结构简单、性能稳定、使用方便、价格低廉、智能化的...
接收端主要用于接收数据并将其实时显示以及报警,采集端主要用于监测室内环境的各类数据以及发送数据。通过温湿度传感器DHT22,甲烷传感器MQ-4,烟雾传感器PM2S-3对环境数据进行采集,利用CC2530将数据发送给上位机...
开发MT4交易平台智能交易系统需使用MQL4语言,本书详细介绍了MQL4的使用方法,介绍了各类语法、函数。另外,不同于以前的版本,这个版本的内容进行了更新修订,修改了许多错误之处
#jun_linux 常用开发环境工具
因此,了解并掌握各类传感器的基本结构、工作原理及特性是非常重要的。 为了提高对传感器的认识和了解,尤其是对烟雾传感器的深入研究以及其用法与用途,基于实用、广泛和典型的原则而设计了本系统。本文利用单片机...
通过各类传感器采集环境数据,如火焰传感器、MQ2烟雾传感器、DHT11温湿度传感器、PM2.5空气颗粒传感器等等,并通过ESP8266上传到云端。此外,还有排风扇模块、雾化模块、水泵、蜂鸣器等设备进行联动控制。 博客首页...
同样,它也可以广泛应用于报警技术领域,使各类报警装置的功能更加完善,可靠性大大提高,以满足社会发展的需要。而传感器作为信息技术系统的“感官”器件,如果没有“感官”感受信息,或者“感官”迟钝,都难以形成...
在硬件设计方面,选用AT89C52单片机,配备MQ-2半导体气体烟雾传感 器、AD模块、由有源电磁式声光器和9015PNP三极管及LED灯组成的声光报 警器、6×6×5的按键模块、GPRS短信告知当前烟雾浓度的报警模块。在软件 设计...
为了对易燃易爆气体浓度进行检测,以便给人们...该系统基于SPCE061A单片机和MQ-2传感器等成本较低的电子器件而设计,其硬件结构简单,具有体积小、性价比高、且灵敏度高等特点,可以应用到各类场所,具有广阔的应用前景。
你只需用10分钟的时间加入一行魔窗代码,以后你的Banner内容想换就换,活动上不上更是由你说了算,同时可以以任意形式出现在任意位置的魔窗动态Banner支持应用更新、帮助手册、H5小游戏等各类现成模板,并自带分享...
(2)面向控制,能针对性地解决从简单到复杂的各类控制任务,因而能获得最佳的性 能价格比; (3)抗干扰能力强,适应温度范围宽,在各种恶劣的环境下都能可靠地工作,这是其 他机种无法比拟的; (4)可以方便地实现多机...
项目主要基于STM32F103ZET6上开发,TFT屏显示,用ESP8266-01WIFI模块作为传输部分,用各类传感器来测量鞋柜内环境,从而控制鞋柜内一些电器的工作。 智能健康鞋柜设计说明: 鞋柜硬件设计包括制作一个STM32F103ZET6的...
2、对系统常见应用软件有运维能力,如Fabio、Registrator、Consul、Git、Jenkins、Nginx、MySQL、MQ、Memcache、Redis等,能够快速实施部署、配置及排错 3、负责推进现网相关问题改进,提高运维效率和质量;...
箱形双梁桥式起重机是由一个有两根箱形主梁和两根横向端梁构成的双梁桥架,在桥架上运行起重小车,可起吊和水平搬运各类物体,它适用于机械加工和装配车间料场等场合。 1.2 起重机设计的总体方案 本次起重机设计的主要...