rabbitmq(面试前复习)

概念性问题

    队列(queue): 是RabbitMQ的内部对象,用于存储消息。

    交换机(exchange):消息首先到达的是交换机而不是队列。

    routing key : 消息到交换机的一个路由规则。

    binding key : 交换机绑定队列的关系。

Exchange Types(交换机路由的4个规则

    fanout:会发送到绑定exchange的所有队列

    direct: 只有routing key 和 binding key 完全匹配才会发给队列

    topic:有匹配规则的表达式 (. * # )

    headers: 根据发送消息中的headers进行匹配

 

遇到哪些问题?如何解决

问:消费者重启后会重复消费一些消息并重复执行业务逻辑

    答:发送给mq后,mq需要收到回执才会把对应的队列删掉

问:宕机了怎么办

    答:把message和queue都设置成持久化的,可以保证大部分信息不回丢失。如果rabbitmq服务器已经接收到生产者的消息了,但没来得及持久化就断电了,需要用到事务。

问:rabbitmq的事务?

    答:太耗费性能,就不考虑了,跟spring的事务很相近,事务针对信道 channel

 

为什么要用rabbitmq

  • 适用于高并发

  • 支持持久化

  • 可靠性

用在什么地方

    日志

     下单->减库存

      抢购

      消息提醒

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值