上篇文章给大家简单介绍了一下RocketMQ,今天给大家说一说几款MQ产品有什么区别。

目前市面上常用的MQ有:

1、RocketMQ 2、RabbitMQ 3、ActiveMQ 4、Kafka 5、ZeroMQ

一、几种MQ的介绍

①RocketMQ

阿里系下开源的一款分布式、队列模型的消息中间件,原名Metaq,3.0版本名称改为RocketMQ,是阿里参照kafka设计思想使用java实现的一套mq。同时将阿里系内部多款mq产品(Notify、metaq)进行整合,只维护核心功能,去除了所有其他运行时依赖,保证核心功能最简化,在此基础上配合阿里上述其他开源产品实现不同场景下mq的架构,目前主要多用于订单交易系统。

具有以下特点:

  • 能够保证严格的消息顺序

  • 提供针对消息的过滤功能

  • 提供丰富的消息拉取模式

  • 高效的订阅者水平扩展能力

  • 实时的消息订阅机制

  • 亿级消息堆积能力

②RabbitMQ

使用Erlang编写的一个开源的消息队列,本身支持很多的协议:AMQP,XMPP, SMTP,STOMP,也正是如此,使的它变的非常重量级,更适合于企业级的开发。同时实现了Broker架构,核心思想是生产者不会将消息直接发送给队列,消息在发送给客户端时先在中心队列排队。对路由(Routing),负载均衡(Load balance)、数据持久化都有很好的支持。多用于进行企业级的ESB整合。

③ActiveMQ

Apache下的一个子项目。使用Java完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,少量代码就可以高效地实现高级应用场景。可插拔的传输协议支持,比如:in-VM, TCP, SSL, NIO, UDP, multicast, JGroups and JXTA transports。RabbitMQ、ZeroMQ、ActiveMQ均支持常用的多种语言客户端 C++、Java、.Net,、Python、 Php、 Ruby等。

④Kafka

Apache下的一个子项目,使用scala实现的一个高性能分布式Publish/Subscribe消息队列系统,具有以下特性:

  • 快速持久化:通过磁盘顺序读写与零拷贝机制,可以在O(1)的系统开销下进行消息持久化;

  • 高吞吐:在一台普通的服务器上既可以达到10W/s的吞吐速率;

  • 高堆积:支持topic下消费者较长时间离线,消息堆积量大;

  • 完全的分布式系统:Broker、Producer、Consumer都原生自动支持分布式,依赖zookeeper自动实现复杂均衡;

  • 支持Hadoop数据并行加载:对于像Hadoop的一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。

⑤ZeroMQ

号称最快的消息队列系统,专门为高吞吐量/低延迟的场景开发,在金融界的应用中经常使用,偏重于实时数据通信场景。ZMQ能够实现RabbitMQ不擅长的高级/复杂的队列,但是开发人员需要自己组合多种技术框架,开发成本高。因此ZeroMQ具有一个独特的非中间件的模式,更像一个socket library,你不需要安装和运行一个消息服务器或中间件,因为你的应用程序本身就是使用ZeroMQ API完成逻辑服务的角色。但是ZeroMQ仅提供非持久性的队列,如果down机,数据将会丢失。如:Twitter的Storm中使用ZeroMQ作为数据流的传输。

ZeroMQ套接字是与传输层无关的:ZeroMQ套接字对所有传输层协议定义了统一的API接口。默认支持 进程内(inproc) ,进程间(IPC) ,多播,TCP协议,在不同的协议之间切换只要简单的改变连接字符串的前缀。可以在任何时候以最小的代价从进程间的本地通信切换到分布式下的TCP通信。ZeroMQ在背后处理连接建立,断开和重连逻辑。

特性:

  • 无锁的队列模型:对于跨线程间的交互(用户端和session)之间的数据交换通道pipe,采用无锁的队列算法CAS;在pipe的两端注册有异步事件,在读或者写消息到pipe的时,会自动触发读写事件。

  • 批量处理的算法:对于批量的消息,进行了适应性的优化,可以批量的接收和发送消息。

  • 多核下的线程绑定,无须CPU切换:区别于传统的多线程并发模式,信号量或者临界区,zeroMQ充分利用多核的优势,每个核绑定运行一个工作者线程,避免多线程之间的CPU切换开销。

二、MQ之间的比较

书卷多情似故人,晨昏忧乐每相亲。眼前直下三千字,胸次全无一点尘。

活水源流随处满,东风花柳逐时新。金鞍玉勒寻芳客,未信我庐别有春。

——明代于谦《观书》

rocketmq 几种队列_关于RocketMQ的知识相关推荐

  1. rocketmq 几种队列_这篇进阶必看的RocketMQ,答应我看完好吗?

    RocketMQ 整体架构设计 整体的架构设计主要分为四大部分,分别是:Producer.Consumer.Broker.NameServer. 为了更贴合实际,我画的都是集群部署,像 Broker ...

  2. rocketmq 几种队列_进阶必看的 RocketMQ ,就这篇了

    RocketMQ 整体架构设计 整体的架构设计主要分为四大部分,分别是:Producer.Consumer.Broker.NameServer. 为了更贴合实际,我画的都是集群部署,像 Broker ...

  3. RabbitMQ的5种队列_订阅模式_入门试炼_第7篇

    解读: 1.1个生产者,多个消费者 2.每一个消费者都有自己的一个队列 3.生产者没有将消息直接发送到队列,而是发送到了交换机 4.每个队列都要绑定到交换机 5.生产者发送的消息,经过交换机,到达队列 ...

  4. RabbitMQ的5种队列_消息确认模式_入门试炼_第6篇

    消费者从队列中获取消息,服务端如何知道消息已经被消费呢? 模式1:自动确认 只要消息从队列中获取,无论消费者获取到消息后是否成功消息,都认为是消息已经成功消费. 模式2:手动确认 消费者从队列中获取消 ...

  5. RabbitMQ的5种队列_简单队列_入门试炼_第4篇

    Statement 文章目录 一.队列总览 1.1. 图示 1.2. 说明 二.简单队列 2.1. 图示 2.2. 导入RabbitMQ的客户端依赖 2.3. 获取MQ的连接 2.4. 生产者发送消息 ...

  6. RabbitMQ的5种队列_通配符模式_入门试炼_第8篇

    5.9.2.生产者

  7. RabbitMQ的5种队列_路由模式_入门试炼_第8篇

    生产者 5.8.3.费者1(前台系统) 消费2(搜索系统)

  8. 移动端布局三种视口_移动端开发知识[系列] - 视口viewport

    移动端H5知识[系列] - 视口viewport HTML5学堂:移动端从2012年走到今日,已经占领了互联网的半壁江山.网站开发也从PC平台向移动端平台开发发展.作为一个优秀的前端开发者,除了能够处 ...

  9. Spring Cloud Alibaba 消息队列:基于 RocketMQ 实现服务异步通信

    本讲咱们将学习以下三方面内容: 介绍消息队列与 Alibaba RocketMQ: 掌握 RocketMQ 的部署方式: 讲解微服务接入 RocketMQ 的开发技巧: 首先咱们先来认识什么是消息队列 ...

最新文章

  1. selenium多个窗口
  2. Echart图表入门
  3. Shiro集成Web时的Shiro JSP标签
  4. html点击子元素隐藏div,jq 点击div,显示当前div内容,隐藏其他div的子元素
  5. 谷歌云试图抢占SAP软件云市场;企业上云迎来“黄金时代”;IBM和SAP帮助金融机构加快采用云技术……...
  6. UIImagePickerController
  7. 你身边有没有“万事不求人”的人?他们后来怎么样了?
  8. bash 不是内部或外部命令_Python安装时提示“Python不是内部或外部命令...”解决方法...
  9. OSI七层模型设计思路
  10. 【linux】gcc命令
  11. C语言课程设计——25道蓝桥杯练习题
  12. 神经网络在线和离线的区别,神经网络网站
  13. 【python】小游戏程序——弹跳小球
  14. java 聊天室 私聊_Java WebSocket实现网络聊天室(群聊+私聊)
  15. Android仿支付宝支付密码输入框
  16. 使用VS2019配置EDK2安装教程
  17. 大数据概论、大数据概念、大数据特点(4V)、Volume(大量)、Velocity(高速)、Variety(多样)、Value(低价值密度)、大数据应用场景、大数据发展前景、大数据部门间业务流程分析
  18. 电脑截屏怎么固定到屏幕 截图放在桌面上
  19. 《费马大定理》个人笔记整理
  20. 软件测试常用术语总结

热门文章

  1. Kubernetes 也有局限性吗?
  2. 征战云时代,如何捍卫企业数据安全?
  3. 分布式架构的王者?Kubernetes凭什么
  4. 游戏行业应该如何建设数据中台?
  5. Cloud一分钟 |2018天猫双11结果出炉:2135亿;工信部透露:6G概念研究也在今年启动;英特尔39款至强新处理器曝光...
  6. Cloud一分钟 | 云厂商Zoho域名被禁两小时;京东云公布医疗健康战略
  7. java 高并发mqtt服务器_Boomer 实战压测 mqtt,2w 并发轻松实现
  8. jquery中ajax完整例子get,jq的ajax方法,jquery中ajax完整例子
  9. 2018年计算机CPU纳米制程,联发科疯狂堆核计划曝光:7纳米制程,12核CPU
  10. 企业微信_通讯录管理,获取部门列表部门成员及详情