本文介绍JMS和AMQP的概念和差异。

JMS

JMS是一种消息传递标准,允许基于Java EE(Java平台企业版)的应用程序组件创建、发送、接收、读取消息。JMS使分布式应用能够以松耦合、可靠、异步的方式进行通信。消息队列RabbitMQ版JMS库支持JMS 1.1

AMQP

AMQP是用于在应用程序或组织之间传递业务消息的开放标准。AMQP连接系统,为业务流程提供所需信息,可靠地传输实现业务目标的指令 。消息队列RabbitMQ版基于AMQP 0-9-1

JMS和AMQP的差异

项目 JMS AMQP
定义 Java API 线级协议
跨平台
跨语言
消息收发模型 2种消息收发模型:
  • P2P
  • Pub/Sub
4种消息收发模型:
  • Direct Exchange
  • Fanout Exchange
  • Topic Exchange
  • Header Exchange
消息类型 5种消息类型:
  • Text message
  • Object message
  • Bytes message
  • Stream message
  • Map message
二进制数据类型
消息流 Producer将消息发送到Queue或者Topic,Consumer从Queue或Topic中消费消息。 Producer将消息发送到Exchange,Exchange将消息路由到Queue,Consumer从Queue中消费消息。