1.平台
JMS只针对Java编程语言。AMQP多技术平台。
2. 消息模型。
JMS支持两种消息模型,点对点,发布订阅模型。
AMQP支持多种交换类型,direct,topic,fanout,headers。消息路由算法依赖于exchange的类型。
3. 消息数据类型
JMS支持 StreamMessage,MapMessage,TextMessage,ObjectMessage和BytesMessage
AMQP仅支持一种类型的消息,二进制消息。
4. 消息结构
JMS消息包括三部分,headers,properties和body
AMQP消息包括四部分,header,properties,body和footers
5. 消息路由
AMQP使用routing key,实现复杂的路由机制,
JMS使用客户端的选择过滤器实现路由
AMQP,有一个概念 Binding,用来连接queue到exchange。Broker会比较消息的routing key和queue的binding key,如果匹配则转发该消息到queue。
6. 工作流程
AMQP,生产者需要发送消息到exchange,然后消息被转发到queue。Publisher->exchange->queue->consumer
JMS,消息直接被发送给Queue或者Topic