当前位置: 首页 > news >正文

RabbitMQ——介绍

什么是消息队列

消息队列,即MQ,Message Queue。
MQ全称为Message Queue,消息队列(MQ)是一种应用程序对应程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。

消息队列是典型的:生产者、消费者模型。生产者不断向消息队列中生产消息,消费者不断地从队列中获取消息。因为消息地生产和消费都是异步地,而且只关心消息的发送和接收,没有业务逻辑的侵入,这样就实现了生产者和消费者的解耦。

AMQP和JMS

MQ是消息通信的模型,并不是具体实现。现在实现MQ的有两种主流方式:AMQP、JMS。

AMQP,即Advanced Message Queuing Protocol一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同的开发语言等条件的限制。Erlang中的实现有RabbitMQ等。

JMS :通常而言提到的JMS(Java MessageService)实际上是指JMS API。JMS是由sun公司早期提出的消息标准,旨在为Java应用提供统一的消息操作,包括create、send、receive等。JMS已经称为Java Enterprise Edition的一部分。从使用角度看,JMS和JDBC担任差不多的角色,用户都是根据响应的接口可以和实现了JMS的服务进行通信,进行相关的操作。

两者间的区别和联系:

  • JMS是定义了统一的接口,来对消息操作进行统一;AMQP是通过规定协议来统一数据交互的格式
  • JMS限定了必须使用Java语言;AMQP只是协议,不规定实现方式,因此是跨语言的。
  • JMS规定了两种消息模型;而AMQP的消息模型更加丰富

常见的MQ产品

  • ActiveMQ:基于JMS
  • RabbitMQ:基于AMQP协议,erlang语言开发,稳定性好
  • RocketMQ:基于JMS,阿里巴巴产品,目前交由Apache基金会
  • Kafka:分布式消息系统,高吞吐量

相关文章:

  • Java教程:使用RSA2算法生成公私钥与签名验签(Base64传输方式)
  • 小红书达人等级粉丝量是怎样的?腰部达人是多少粉丝
  • Laravel Valet - macOS 极简主义者的开发环境
  • python之icecream使用实测
  • 第9章 集合
  • RfDNet 在Ubuntu16下的配置与运行——(二)数据准备与训练
  • 前端Gitee + Jenkins自动化实战(转)
  • 【Android Studio程序开发】按钮触控---按钮控件Button
  • 《棒球大联盟2nd》:热血拼搏·棒球1号位
  • 计算机、软件专业常去的学习网站
  • 5 年经验年薪百万,一位阿里 P8 分享自己的成长干货
  • 【C++笔试强训】第三天
  • brew换源
  • G银行借助光伏互联网平台发展户用光伏金融业务,加速绿色转型 | 案例研究
  • JAVA基础语法以及一些常见的练习
  • 如何在 Spring Boot 项目中使用 Thymeleaf 和 Bootstrap 实现文件上传
  • 智能电销机器人《各版本机器人部署》
  • 微信小程序的生命周期概览
  • 【华为上机真题 2022】数组组成的最小数字
  • Pr:导出设置之音频
  • 电加热油锅炉工作原理_电加热导油
  • 大型电蒸汽锅炉_工业电阻炉
  • 燃气蒸汽锅炉的分类_大连生物质蒸汽锅炉
  • 天津市维修锅炉_锅炉汽化处理方法
  • 蒸汽汽锅炉厂家_延安锅炉厂家
  • 山西热水锅炉厂家_酒店热水 锅炉
  • 蒸汽锅炉生产厂家_燃油蒸汽发生器
  • 燃煤锅炉烧热水_张家口 淘汰取缔燃煤锅炉
  • 生物质锅炉_炉
  • 锅炉天然气_天燃气热风炉