异步消息传递技术JMS、AMQP和MQTT主要特性

消息传递作为基本通信机制已经在全世界成功运用。无论是人与人、机器与人还是机器与机器之间,消息传递一直都是唯一常用的通信方式。在双方(或更多)之间交换消息有两种基本机制。

同步消息传递

异步消息传递

同步消息传递在这种情况下使用,当消息发送者希望在某个时间范围内收到响应,然后再进行下一个任务。基本上就是他在收到响应前一直处于“阻塞”状态。

异步消息意味着发送者并不要求立即收到响应,而且也不会阻塞整个流程。响应可有可无,发送者总会执行剩下的任务。

上面提到的技术,当两台计算机上的程序相互通信的时候,就广泛使用了异步消息传递。随着微服务架构的兴起,很明显我们需要使用异步消息传递模型来构建服务。

这一直是软件工程中的基本问题,而且不同的人和组织机构会提出不同的方法。我将介绍在企业IT系统中广泛使用的三种最成功的异步消息传递技术。

 Java消息传递服务(Java Messaging Service (JMS))

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

 异步消息传递技术JMS、AMQP和MQTT主要特性_设计制作_测量仪表

图片来源于网络

 下面是JMS的主要特性:

面向Java平台的标准消息传递API

在Java或JVM语言比如Scala、Groovy中具有互用性

无需担心底层协议

有queues和topics两种消息传递模型

支持事务

能够定义消息格式(消息头、属性和内容)

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

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

 异步消息传递技术JMS、AMQP和MQTT主要特性_设计制作_测量仪表

图片来源于网络

 下面是AMQP的主要特性:

独立于平台的底层消息传递协议

消费者驱动消息传递

跨语言和平台的互用性

它是底层协议的

有5种交换类型direct,fanout,topic,headers,system

面向缓存的

可实现高性能

支持长周期消息传递

支持经典的消息队列,循环,存储和转发

支持事务(跨消息队列)

支持分布式事务(XA,X/OPEN,MS DTC)

使用SASL和TLS确保安全性

支持代理安全服务器

元数据可以控制消息流

不支持LVQ

客户端和服务端对等

可扩展

65
43
0
46

相关资讯

  1. 1、张艺谋赞《哥斯拉》了不起谈新片:魔幻加动作2936
  2. 2、好莱坞4大“克里斯”!“雷神”和另外三人关系都很好1395
  3. 3、42岁舒淇近照,和男闺蜜陈坤相聚,没想到却被陈坤的容颜打败!4186
  4. 4、抑爆?欲爆!《暴躁天使》曝大张渔版主海报81
  5. 5、演了一辈子坏人的计春华走了,三个月前被查出肺癌晚期2540
  6. 6、《蚁人2》2.84亿美元,创漫威票房新低,号召力真不如钢铁侠1298
  7. 7、《冰封》公映日霸气外露最牛车身广告惊呆观众3236
  8. 8、女星拍吻戏时的辅助道具曝光,饺子保鲜膜都比不过热巴的神器895
  9. 9、《狄仁杰2》刷徐克票房纪录成功进驻6亿俱乐部4491
  10. 10、《临时同居》首曝预告张家辉郑秀文毒舌互损5024
全部评论(0)
我也有话说
0
收藏
点赞
顶部