1.消息队列的应用场景有哪些?
答:消息队列的应用场景如下。
- 应用解耦,比如,用户下单后,订单系统需要通知库存系统,假如库存系统无法访问,则订单减库存将失败,从而导致订单失败。订单系统与库存系统耦合,这个时候如果使用消息队列,可以返回给用户成功,先把消息持久化,等库存系统恢复后,就可以正常消费减去库存了。
- 削峰填谷,比如,秒杀活动,一般会因为流量过大,从而导致流量暴增,应用挂掉,这个时候加上消息队列,服务器接收到用户的请求后,首先写入消息队列,假如消息队列长度超过最大数量,则直接抛弃用户请求或跳转到错误页面。
- 日志系统,比如,客户端负责将日志采集,然后定时写入消息队列,消息队列再统一将日志数据存储和转发。
2.RabbitMQ 有哪些优点?
答:RabbitMQ 的优点如下:
- 可靠性,RabbitMQ 的持久化支持,保证了消息的稳定性;
- 高并发,RabbitMQ 使用了 Erlang 开发语言,Erlang 是为电话交换机开发的语言,天生自带高并发光环和高可用特性;
- 集群部署简单,正是因为 Erlang 使得 RabbitMQ 集群部署变的非常简单;
- 社区活跃度高,因为 RabbitMQ 应用比较广泛,所以社区的活跃度也很高;
- 解决问题成本低,因为资料比较多,所以解决问题的成本也很低;
- 支持多种语言,主