RabbitMQ常见的面试问题

RabitMQ是什么?
Rabbitmq是一款使用erlang语言开发,基于AMQP协议的消息中间件.
RabbitMQ的应用场景是什么?
1.异步通知:发短信,邮件的时候,采用异步处理的方式,客户无需等待通知结果
2.流量削锋:在电商中大秒杀活动中,采用队列长度来控制请求的数量,超过队列的长度,则返回给客户响应失败的界面.
3.应用解耦:订单业务在下订单之后,我们需要去库存业务中减少库存只需要把减库存的消息写入到消息队列中,就无需关心后续操作 ,减少应用之间的耦合
4.消息通知:可以即时通讯,使用点对点通信,双方同时订阅队列,双方即是生产者,又同时是消费者.
如何保证RabbitMQ的消息不被重复消费?
为消息标记一个全局唯一的id,发送到队列的时候,就把该消息的id作为key存入到redis,这样在消费的时候去redis中判断是否存在该消息的id即可.
**

你可能感兴趣的:(java,队列,中间件,rabbitmq)