产品及行业资讯
News
异步消息传递技术JMS,AMQP和MQTT的主要功能
作为基本通信机制的消息传递已在世界范围内成功使用。无论是在人,机器之间,还是机器之间,消息传递一直是唯一常用的通信方法。
在两方(或更多方)之间交换消息有两种基本机制。同步消息异步消息当消息发送者希望在进行下一个任务之前在特定时间范围内收到响应时,将使用同步消息。
基本上,他一直处于“封锁”状态。收到响应之前先声明。
异步消息意味着发件人不需要立即响应,也不会阻止整个过程。响应是可选的,发送方将始终执行其余任务。
如上所述的技术,当两台计算机上的程序彼此通信时,异步消息传递被广泛使用。随着微服务架构的兴起,很明显,我们需要使用异步消息传递模型来构建服务。
这一直是软件工程中的一个基本问题,不同的人和组织会提出不同的方法。我将介绍在企业IT系统中广泛使用的三种最成功的异步消息传递技术。
Java消息服务(JMS)JMS是最成功的异步消息技术之一。随着Java在许多大型企业应用程序中的使用,JMS已成为企业系统的首选。
它定义了用于构建消息传递系统的API。图片来自网络。
以下是JMS的主要功能:for适用于Java平台的标准消息传递API Java或JVM语言的互操作性(例如Scala,Groovy)无需担心底层协议消息传递模型有两种,队列和主题,可以支持事务处理定义消息格式(标头,属性和内容)高级消息队列协议(AMQP)JMS很棒,人们非常高兴使用它。微软开发了NMS(.NET消息服务)来支持其平台和编程语言,并且运行良好。
但是存在互操作性的问题。使用两种不同编程语言的两个程序如何通过它们的异步消息传递机制相互通信。
此时,有必要为异步消息传递定义通用标准。没有针对JMS或NMS的标准基础协议。
它们可以在任何基础协议上运行,但是API已绑定到编程语言。 AMQP解决了这个问题。
它使用一组标准的基础协议,添加了许多其他功能来支持互操作性,并丰富了现代应用程序的消息传递要求。图片来自网络。
以下是AMQP的主要特征:独立于平台的低级消息传递协议由消费者驱动的消息传递跨语言和平台互操作性该基础协议具有五种交换类型,直接,扇出,主题,标头,系统面向缓存可以实现高性能,支持长期消息传递,支持经典消息队列,循环,存储和转发,支持事务(跨消息队列)支持分布式事务(XA,X / OPEN,MS DTC)使用SASL和TLS确保安全支持代理安全服务器元数据可以控制不支持LVQ的消息流客户端和服务器对等端可扩展。