AMQP

高级消息队列协议(Advanced Message Queuing Protocol) AMQP 是在应用程序或组织之间传递业务消息的开放标准。

它连接系统,向业务流程提供所需的信息,并可靠地传递实现目标的指令。

关键功能

AMQP连接在:

  • 组织-不同组织中的应用程序

  • 技术——不同平台上的应用程序

  • 时间系统不需要同时可用

  • 空间-在一定距离或较差的网络上可靠地工作

业务案例

企业选择AMQP而不是专有产品的主要原因是:

  • 实现节约商品化带来的商品;删除供应商锁定

  • 连接不同平台上的应用程序;选择合适的工作平台

  • 使用全功能的开放标准连接到业务伙伴;消除技术性贸易壁垒

  • 以AMQP为基础的创新职位

关键特性

AMQP的目标是:

  • 安全

  • 可靠性

  • 互操作性

  • 标准

  • 开放

  • 底线

AMQP 所提供的强大的、商品化的、多供应商的通信生态系统为商业和创新创造了机会,从而改变了在互联网和云计算中进行业务的方式。

AMQP 旨在完全解决实际问题。

与 JMS 对比

JMS

JMS

对比

目前AMQP逐渐成为消息队列的一个标准协议,当前比较流行的rabbitmq、stormmq都使用了AMQP实现。

这是其和JMS的本质差别,AMQP不从API层进行限定,而是直接定义网络交换的数据格式。

这使得实现了AMQP的provider天然性就是跨平台的。意味着我们可以使用Java的AMQP provider,同时使用一个python的producer加一个rubby的consumer。

从这一点看,AQMP可以用http来进行类比,不关心实现的语言,只要大家都按照相应的数据格式去发送报文请求,不同语言的client均可以和不同语言的server链接。

总结

AMQP 终将统一天下。

参考资料

https://spring.io/projects/spring-amqp

AMQP & JMS对比

基于AMQP实现的golang消息队列MaxQ