异步消息传递技术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、世界的半导体行情已明显显示出源自中国的波动迹象2808
  2. 2、2019年10月下旬流通领域重要生产资料市场价格变动情况!4598
  3. 3、四川省2018年474个重大工业项目集中开工电子信息类项目74个3823
  4. 4、黑客可以通过修改CTKD代码来覆盖设备上的蓝牙认证密钥1515
  5. 5、全球首款倒装式蓝牙运动耳机:极致防水2504
  6. 6、美国研究小组证明量子级联激光器可分析爆炸性火球化学成分975
  7. 7、网络安全产生更具突破性的三种前景技术,为其他安全技术提高战斗力3525
  8. 8、郑州大学汉威物联网研究院揭牌成立!打造物联网生态圈3892
  9. 9、腾讯云多项云计算产品通过国家权威标准认证,助力构建稳定安全的云环境1312
  10. 10、云计算自动化平台HashiCorp完成1亿美元D轮融资,建立其全球业务169
全部评论(0)
我也有话说
0
收藏
点赞
顶部