异步消息传递技术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、Win10外置usb摄像头如何打开?2601
  2. 2、车来了app如何查询公交线路?车来了app查询公交线路的方法1250
  3. 3、U盘插入电脑提示未能成功安装设备驱动程序怎么办?786
  4. 4、Win10系统桌面怎么显示本地天气?Win10设置天气教程1357
  5. 5、Win10电脑安装破解软件一直被删除怎么解决?4785
  6. 6、Win10系统提示:Localbridge.exe损坏的映像怎么办?745
  7. 7、Mac关机快捷键是什么?Mac关机快捷键汇总1941
  8. 8、VMware如何共享虚拟机?VMware虚拟机共享方法简述2346
  9. 9、电脑主板usb接口全部失灵怎么办?电脑主板usb接口全部失灵解决方法1150
  10. 10、Win10如何设置豆沙绿?Win10设置豆沙绿教程2383
全部评论(0)
我也有话说
0
收藏
点赞
顶部