消息队列

一、作用

1.解耦

代码,或者系统通信都可能存在强耦合的关系,可以通过消息队列第三方技术处理强耦合,解耦 。

1.消峰

请求到达系统的方法上限,超过上限的请求不丢失不拒绝.。

二、rabbitmq的启动和控制台登录

1.服务器启动rabbtimq

#service rabbitmq-server start
start启动
stop停止
restart重启

2.登录控制台

控制台是web应用,可以通过http协议访问
ip:15672
登录名密码:guest/guest

三、rabbitmq五种模式

1.简单模式

当生产端发送消息到交换机,交换机根据消息属性发送到队列,消费者监听绑定队列实现消息的接收和消费逻辑编写.简单模式下,强调的一个队列queue只被一个消费者监听消费.
1.1结构
在这里插入图片描述
生产者:生成消息,发送到交换机

交换机:根据消息属性,将消息发送给队列

消费者:监听这个队列,发现消息后,获取消息执行消费逻辑

1.2应用场景
常见的应用场景就是一发,一接的结构
例如:
手机短信,邮件单发

2.争抢模式

强调的也是后端队列与消费者绑定的结构(一对多)
1.1结构
在这里插入图片描述
生产者:发送消息到交换机
交换机:根据消息属性将消息发送给队列
消费者:多个消费者,同时绑定监听一个队列,之间形成了争抢消息的效果
1.2应用场景
抢红包
资源分配系统

3.交换机----3种

(1).交换机的运行机制

生产端要发送消息,永远不会将消息发送给队列,而是发送给交换机。
消息本身除了数据以外,携带一个路由key值。
交换机根据自身的类型不同,采用不同的方式处理这些消息(计算路由key方式不同) 。

(2).三种类型

第一种:发布订阅:fanout

在这里插入图片描述
生产端:发送消息到交换机

交换机:由于是发布订阅模式,会将这个消息发送同步到后端所有与其绑定的队列

消息端:简单模式 1个队列绑定一个消费者 争抢模式 1个队列绑定多个消费者

应用场景
邮件的群发,广告的群发

第二种:路由模式:direct

在这里插入图片描述
生产端:发送的消息携带具体的路由key值

交换机:接收路由key值,判断和当前交换机绑定后端队列哪个满足路由的匹配

将消息发送给这个队列

应用场景
处理一些特殊的消息逻辑,可以经过路由的筛选

第三种:主题模式:topic

在这里插入图片描述
交换机绑定队列,不在使用具体的路由key,可以使用符号代替路由key值的规则

#:表示任意多级的任意长度的字符串

*:任意长度字符串,但是只有一级

应用场景
实现多级传递的路由筛选工作,记录trace过程.

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值