• 那是从何处传来的钟声呢?偶尔听到那钟声,平添一份喜悦与向往之情。

RabbitMQ

后端 Nanait 6年前 (2018-10-23) 978次浏览 已收录 0个评论 扫描二维码

RabbitMQ的队列容量可以认为是无限的,根据内存有关。可以设置队列最大长度,当达到长度的时候,最先入队列的消息将被丢弃。

一般在秒杀活动中应用广泛。

场景:秒杀活动,一般会因为流量过大,导致应用挂掉,为了解决这个问题,一般在应用前端加入消息队列。

作用:

  1. 可以控制活动人数,超过此一定量的订单直接丢弃,先显示一个排队中,后端在处理,可能成功过可能失败。
  2. 可以缓解短时间的高流量压垮应用(应用程序按自己的最大处理能力获取订单)

为什么使用RabbitMQ

  1. RabbitMQ是一个高级消息队列,在分布式的场景下,拥有高性能。对负载均衡也有很好的支持
  2. 拥有持久化的机制,进程消息、队列中的信息也可以保存下来。
  3. 实现消费者和生产者之间的解耦。
  4. 对于高并发场景下,利用消息队列可以使得同步访问变成串行访问,达到一定的限流,利于数据库的操作。
  5. 可以使用消息队列达到异步下单的效果,排队中,后台进行逻辑下单。

AMQP,即 Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在。

RabbitMQ的优点

  1. 给予 erlang 语言开发具有高可用高并发的优点,适合集群服务器。
  2. 健壮、稳定、易用、跨平台、支持多种语言、文档齐全。
  3. 有消息确认机制和持久化机制,可靠性高。
  4. 开源。

其他 MQ 的优势

  1. Apache ActiveMQ 曝光率最高,但是可能会丢消息。
  2. ZeroMQ 延迟很低、支持灵活拓扑,但是不支持消息持久化和崩溃恢复。
  3. Kafka 定位是日志消息队列,吞吐量最大。
  4. 相比阿里的 RocketMQ,RabbitMQ是可靠性更强,对数据一致性、稳定性和可靠性要求很高的场景。

劣势是RabbitMQ的性能,吞吐量不高。


何处钟 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:RabbitMQ
喜欢 (0)
[15211539367@163.com]
分享 (0)

您必须 登录 才能发表评论!