全面的学习消息队列、RabbitMQ、JMS、AMQP、MQTT

2019-07-28  本文已影响0人  大继

目的

全部了解一下MQ结合自己多年来的疑惑

消息队列的相关

什么是MQ

消息队列(MQ),是一种应用程序对应用程序的通信方法。应用程序通过写和检索出入列队的针对应用程序的数据(消息)来通信,而无需专用连接来链接它们。

消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。

image.png

什么是JMS

*Java消息传递服务(Java Messaging Service (JMS))
*JMS是最成功的异步消息传递技术之一。随着Java在许多大型企业应用中的使用,JMS就成为了企业系统的首选。它定义了构建消息传递系统的API。


image.png

下面是JMS的主要特性:

什么是AMQP

高级消息队列协议(Advanced Message Queueing Protocol (AMQP))

JMS非常棒而且人们也非常乐意使用它。微软开发了NMS(.NET消息传递服务)来支持他们的平台和编程语言,它效果还不错。但是碰到了互用性的问题。两套使用两种不同编程语言的程序如何通过它们的异步消息传递机制相互通信呢。此时就需要定义一个异步消息传递的通用标准。JMS或者NMS都没有标准的底层协议。它们可以在任何底层协议上运行,但是API是与编程语言绑定的。AMQP解决了这个问题,它使用了一套标准的底层协议,加入了许多其他特征来支持互用性,为现代应用丰富了消息传递需求。

image.png

下面是AMQP的主要特性:

什么是MQTT

消息队列遥测传输(Message Queueing Telemetry Transport (MQTT))

现在我们已经有了面向基于Java的企业应用的JMS和面向所有其他应用需求的AMQP。为什么我们还需要第三种技术?它是专门为小设备设计的。计算性能不高的设备不能适应AMQP上的复杂操作,它们需要一种简单而且可互用的方式进行通信。这是MQTT的基本要求,而如今,MQTT是物联网(IOT)生态系统中主要成分之一。

image.png

总结

了解完MQ 基础知识后,后续补充实战文章。

参考

http://rabbitmq.mr-ping.com/AMQP/AMQP_0-9-1_Model_Explained.html
https://baijiahao.baidu.com/s?id=1608411516249221334&wfr=spider&for=pc
https://blog.csdn.net/dongfengkuayue/article/details/51329110

上一篇 下一篇

猜你喜欢

热点阅读