消息传递做为基本通讯机制已经在全世界成功运用。不管是人与人、机器与人仍是机器与机器之间,消息传递一直都是惟一经常使用的通讯方式。在双方(或更多)之间交换消息有两种基本机制。html
同步消息传递在这种状况下使用,当消息发送者但愿在某个时间范围内收到响应,而后再进行下一个任务。基本上就是他在收到响应前一直处于“阻塞”状态。java
异步消息意味着发送者并不要求当即收到响应,并且也不会阻塞整个流程。响应无关紧要,发送者总会执行剩下的任务。编程
上面提到的技术,当两台计算机上的程序相互通讯的时候,就普遍使用了异步消息传递。随着微服务架构的兴起,很明显咱们须要使用异步消息传递模型来构建服务。缓存
这一直是软件工程中的基本问题,并且不一样的人和组织机构会提出不一样的方法。我将介绍在企业IT系统中普遍使用的三种最成功的异步消息传递技术。安全
JMS是最成功的异步消息传递技术之一。随着Java在许多大型企业应用中的使用,JMS就成为了企业系统的首选。它定义了构建消息传递系统的API。服务器
下面是JMS的主要特性:架构
JMS很是棒并且人们也很是乐意使用它。微软开发了NMS(.NET消息传递服务)来支持他们的平台和编程语言,它效果还不错。可是碰到了互用性的问题。两套使用两种不一样编程语言的程序如何经过它们的异步消息传递机制相互通讯呢。此时就须要定义一个异步消息传递的通用标准。JMS或者NMS都没有标准的底层协议。它们能够在任何底层协议上运行,可是API是与编程语言绑定的。AMQP解决了这个问题,它使用了一套标准的底层协议,加入了许多其余特征来支持互用性,为现代应用丰富了消息传递需求。app
下面是AMQP的主要特性:异步
如今咱们已经有了面向基于Java的企业应用的JMS和面向全部其余应用需求的AMQP。为何咱们还须要第三种技术?它是专门为小设备设计的。计算性能不高的设备不能适应AMQP上的复杂操做,它们须要一种简单并且可互用的方式进行通讯。这是MQTT的基本要求,而现在,MQTT是物联网(IOT)生态系统中主要成分之一。编程语言
下面是MQTT的主要特性:
--------------------- 本文来自 dongfengkuayue 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/dongfengkuayue/article/details/51329110?utm_source=copy