消息队列基础应用
文章目录
消息队列的作用
- 任务异步运行
- 服务解耦
- 流量控制
息队列的本质是将同步处理转成异步处理,异步会带来相应的好处,但也有弊端。
.可在模块、服务、接口等不同粒度上实现解耦 订阅/消费模式也可在数据粒度上解耦
现在用的消息队列主要是做数据异步传输用的,之前也做过多个系统之间的解耦。看到用消息队列做秒杀系统,忽然想到之前只想过用redis去做,利用redis去做了流量的把控。不过细想想,这种情况下的redis和文章中的令牌桶
1 异部的处理交易:提高用户请求的响应速度,同时也提升了用户的体验感。 2 削峰 :保护服务器的一种方式,用户的请求放到kafka中,交易服务根据自己服务器的消费能力来消费交易数据。 3 项目的解耦:交易服务和后续的服务之间是通过Kafka进行交付,当一个服务为多个服务提
面试备考
rabbitMQ原理
至少会一个消息队列的原理,准备面试用
RabbitMQ 一个比较有特色的功能是支持非常灵活的路由配置,和其他消息队列不同的是,它在生产者(Producer)和队列(Queue)之间增加了一个 Exchange 模块,你可以理解为交换机。
这个 Exchange 模块的作用和交换机也非常相似,根据配置的路由规则将生产者发出的消息分发到不同的队列中。路由的规则也非常灵活,甚至你可以自己来实现路由规则。基于这个 Exchange,可以产生很多的玩儿法,如果你正好需要这个功能,RabbitMQ 是个不错的选择。
名词 | 概念 |
---|---|
connection | 一个 tcp连接的抽象概念 |
channels | 虚拟连接,基于tcp连接【类似于线程池这样子,将一个connection做出多路复用】 |
exchange | 交换机,属于 vhost ,用于 处理消息,转发到对应的队列 |
binding | exchange 和 queue队列的关系抽象 |
broker | 发送消息者 |
文章作者 LYR
上次更新 2021-08-17