RabbitMQ之消息队列以及JMS和AMQP的概念------RabbitMQ

应用开发中,我们可以通过消息中间件来提升系统异步通信能力,扩展解耦能力
消息服务重要概念:
消息代理,目的地
当消息发送者发送消息以后,会有消息代理接管,消息代理要保证消息
能传递到指定目的地,消息队列有两种形式的目的地,队列(Queue)和主题(Topic)
队列是点对点消息通信,主题是发布订阅消息通信

应用开发中,我们可以通过消息中间件来提升系统异步通信能力,扩展解耦能力
消息服务重要概念:
消息代理,目的地
当消息发送者发送消息以后,会有消息代理接管,消息代理要保证消息
能传递到指定目的地,消息队列有两种形式的目的地,队列(Queue)和主题(Topic)
队列是点对点消息通信,主题是发布订阅消息通信

点对点:消息发送者发送消息,消息代理将其放入一个队列,消息接收者从中获取消息内容
消息被读取后移除队列,消息只有唯一的发送者和接收者(点对点)
但是不一定是只有一个接收者
发布订阅式:发送者发送消息到主题,多个接收者(订阅者)监听(订阅)这个主题
那么就会在消息到达的同时收到消息
JMS,java消息服务,基于JVM消息规范,ActiveMQ,HornetMQ是JMS实现的
他们的好处就是JAVA有原生的调用,坏处是跨语言平台就不行了
AMQP高级消息队列协议,兼容JMS,rabbitMQ是AMQP的实现

点对点:消息发送者发送消息,消息代理将其放入一个队列,消息接收者从中获取消息内容
消息被读取后移除队列,消息只有唯一的发送者和接收者(点对点)
但是不一定是只有一个接收者
发布订阅式:发送者发送消息到主题,多个接收者(订阅者)监听(订阅)这个主题
那么就会在消息到达的同时收到消息
JMS,java消息服务,基于JVM消息规范,ActiveMQ,HornetMQ是JMS实现的
他们的好处就是JAVA有原生的调用,坏处是跨语言平台就不行了
AMQP高级消息队列协议,兼容JMS,rabbitMQ是AMQP的实现

JMS因为是使用的javaAPI,可以直接像JDBC调用那样直接使用
更换JMS不需要修改代码,不关心底层实现,但是它对跨语言平台支持性差
(JMS定义了JAVA的API层面的标准)
AMQP则是通过网络线级协议,AMQP消息类型只支持Byte[]
众所周知,网络交互,万物皆是Byte
(AMQP定义了wire-level层的协议标准,天然跨平台)

JMS因为是使用的javaAPI,可以直接像JDBC调用那样直接使用
更换JMS不需要修改代码,不关心底层实现,但是它对跨语言平台支持性差
(JMS定义了JAVA的API层面的标准)
AMQP则是通过网络线级协议,AMQP消息类型只支持Byte[]
众所周知,网络交互,万物皆是Byte
(AMQP定义了wire-level层的协议标准,天然跨平台)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值