中间件 - 消息队列 - RabbitMQ - 面试题分析

.

消息队列的作用与使用场景

解耦 / 异步 / 削峰

.

Channel和vhost的作用

Channel 减少TCP连接资源的消耗
vhost: 资源隔离, 提升硬件资源的利用率 ( 可以挤很多来源于不同系统的 Exchange Queue )
.

消息有哪些路由方式, 适合什么场景

  • DIRECT 业务非常明确的时候, 一个exchange对应一个queue的时候
  • TOPIC 带通配符, 根据消息的内容或消息等级做过滤, 决定分发到哪个Queue, 风控的消息发给风控的Queue, 广告的消息就发给广告的Queue
  • FANOUT 广播类型 一个消息, 大家都关注, 任何消息都会发往绑定好的所有的Queue

Exchange和Queue, Queue与Consumer的绑定关系是什么样的

多对多
当一个队列对应多个消费者的时候, 消息的分发是按照轮询的方式, 每个消费者给多少取决于prefetch count配置了多少
多个消费者无法保证有序性的消费消息
.

无法被路由的消息, 去了哪里

如果没有配置, 就直接丢弃消息
如果不想丢弃, 提供了如下两种方式

  • returnListener回发机制: 在代码里, 一个回调函数里, 可以处理这种消息
  • 备份的Exchange: 如果配了备份Exchange, 就会把消息转发到这个Exchange里

消息什么时候会变成Dead Letter(死信)

  • 消息过多 ( 超过了队列的最大长度和最大字节数: x-max-length
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值