异步消息传递技术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、不宜妄自菲薄,中国机床将登上广阔舞台4189
  2. 2、如何搭建一个物联网系统框架3664
  3. 3、需要了解的linux加载ntfs和fat32分区3498
  4. 4、奥地利自动化厂商Keba收购了两家德国的公司1558
  5. 5、如何选择合适的医用传感器546
  6. 6、印度半导体的崛起之路2210
  7. 7、带你一起了解GE工业互联网的前世今生2227
  8. 8、群雄逐鹿AI“中国芯”,突破口在哪里?4672
  9. 9、单路低电压电压输入的数模转换器MAX5214/16的主要特性及应用范围4375
  10. 10、展望智慧物流未来的发展1727
全部评论(0)
我也有话说
0
收藏
点赞
顶部