MQ

1.为什么使用消息队列

MQ全称是Message Queue,可以理解为消息队列的意思,简单来说就是消息以管道的方式进行传递。
主要场景:解耦、异步、削峰
消息队列是应用程序和应用程序之间的通信方式,

2.activeMq

使用 JMS 协议(Java Messaging Service),JMS 是针对Java体系的传输协议,要求队列两端都有 JVM ,开发环境是 JAVA 时,可以考虑使用传递一些JAVA对象,比如MAP、Stream、Blob等。不需要环境,解压即可
消息模式: 点对点 、 订阅(一对多)

3. RabbitMQ

(1) 使用 AMQP 协议,AMQP 非JAVA环境通用性强,传输内容就是标准的字符串,因为使用 Erlang语言开发,使用前需要部署环境
(2) AMQP协议 : 高级消息队列协议。他是应用层协议的一个开放标准,为面对消息的中间件设计,基于此协议的客户端与消息中间件可传递消息,并不接受产品、开发语言等条件的限制。简单理解就是定义了一个规范,而rabbitmq就是实现了这个规范。
(3) 队列服务三个概念:发消息者、队列、收消息者,rabbitmq 在基本概念上,多做了一层抽象,在消费者和队列之间,加入了交换器(Exchange),这样发消息者和队列没有直接联系,转变为发消息者把消息给交换器,交换器根据调度策略再把消息给队列
(4) 交换器4中类型:
Direct :direct类型的行为是“先匹配,再投送”,即绑定时设定一个routing_key,消息的routing_key匹配时,才会被交换器投送到绑定的队列中
Topic:按规则转发消息(最灵活)
Headers:设置header attribute 参数类型的交换器
Fanout :转发消息到所有绑定队列中
注:Direct Exchange 是 rabbitMq 默认的交换器模式

4.对比
activeMQ:JMS协议,java,吞吐量小,稳定性高
rabbitMQ:AMQP协议,Erlang,吞吐量大,稳定性底

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值