rabbitMQ相关问题总结

rabbitMQ相关问题

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

答:异步、解耦、消峰、广播(结合实际业务)

channel的作用是什么

答:多路复用思想,1.减少tcp长连接消耗,2.java的API里的重要编程接口,创建交换机、队列绑定,发送消息、创建消息都是在channel上实现的

多个项目共用MQ服务器,怎么实现权限隔离

答:创建vhost,为不同的业务系统创建不同的用户,给用户分配访问vhost的访问权限,实现权限隔离又提升硬件利用率

消息有那些路由方式,及其它们的使用场景

答:

  1. 直连dict:业务目的明确;
  2. 主题topic:规则灵活,邦定健可设置通配符;
  3. 广播fanout:通用类型,大家都需要,谁要就谁创建队列获取消息

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

答:3类情况

  1. 路由键错误、队列不存在、没有任何的配置–直接丢弃进入黑洞
  2. 交换机属性(alternate-exchange)备份的交换机属性,如果创建交换机时候指定了替补交换机,则由替补交换机绑定的队列后续的消费者去消费
  3. 回发,哪里来的回哪里去

消息在什么时候会变成死信

答:

  1. 消息过期,到达队列ttl、到达交换机ttl
  2. 超过队列长度(max length)
  3. 超过队列存储最大容量(max length bytes)
  4. 拒绝而且没有重回队列的消息

如果一个项目要从那个服务器接收消息,怎么办

答:定义多个template,因其由属性ConnectionFactory中就是服务牌的配置信息,定义多个template就可以指定连接不同且想要实现的服务器

如何一个项目要发送消息到多个服务器,怎么办

答:修改注入的RabbitListener注入中的ConnectionFactory即可发生到不同的服务器

如何实现延迟消息,例如订单15分钟自动关闭

答:设置过期时间,利用死信交换机到死信队列,被指定消费知消费(利用插件中type为x-delayed-message,消息头中指定延迟时间)

那些情况被造成消息丢失?怎么处理

答:

  1. AMQP,从生产者发消息到broker–设置服务器确认的不同模式
  2. 交换机到队列;–1、回发监听器;2、设置备份交换机处理
  3. 队列到消费者;–binding持久化,队列保障
  4. 消费者没有ack到队列;–1、自动ack;2、手动ack

一个队列最多存储多少消息

答:队列属性,max length和max length bytes控制队列存储消息的大小

可以用队列的x-max-length实现消息限流例如处理秒杀场景么?

答:不可以,因为存满后,后续消息进入队列后会将队列头的消息丢弃掉,不能实现消息限流的作用

如何提高消息的消费速率

答:增加消费者,消费者代码用多线程处理

AmqpTemplate和RabbitTemplate有什么区别

答:AmqpTemplate是sping对amqp的封装,RabbitTemplate是对AmqpTemplate的实现

如何动态的创建队列和消费者

答:RabbitTemplate中的接口createListenerContainer

Spring amqp中消息如何封装,怎么转换

答:利用序列化的工具(例如messageConverter)封装成Message的对象,在发消息时候会用序列化的工具对其序列化,消费者中反序列化的工具进行反序列化

如何保证消息的顺序性

答:一个队列指定一个消费者处理消息

RabbitMQ集群节点类型,区别是什么

答:

  1. 磁盘节点(原数据放在磁盘,应用提供读写)
  2. 内存节点(原数据放内存,备份数据)如果是持久化也会保存在磁盘

如何保证RabbitMQ高可用

答:Keepalived和HAProxy

大量消息堆积怎么办

答:

  1. 因为没有ack应答造成unack情况,让消费者处理掉队列头部的消息
  2. 因消费能力不足,则增加消费者
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值