RabbitMQ教程-RabbitMQ简介

echo编辑整理,欢迎转载,转载请声明文章来源。欢迎添加echo微信(微信号:t2421499075) 交流学习。


RabbitMQ简介

RabbitMQ是一款非常热门的消息中间件,是实现了高级消息队列协议(AMQP)的开源消息代理软件。RabbitMQ服务器是用Erlang语言编写的,而群集和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。它 凭借其高可靠、易扩展、高可用及丰富的功能和支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗,受到广大企业的青睐

RabbitMQ的架构模型图如下

在这里插入图片描述

  • Producer: 生产者,就是投递消息的一方。
  • Consumer: 消费者,就是接收消息的一方。
  • Broker: 消息中间件的服务节点
  • Queue: 队列,是RabbitMQ的内部对象,用于存储消息。

RabbitMQ的优点

  • 可靠性。RabbitMQ提供了多种技术可以让你在性能和可靠性之间进行权衡。这些技术包括持久性机制、投递确认、发布者证实和高可用性机制。
  • 灵活的路由。消息在到达队列前是通过交换机进行路由的。RabbitMQ为典型的路由逻辑提供了多种内置交换机类型。如果你有更复杂的路由需求,可以将这些交换机组合起来使用,你甚至可以实现自己的交换机类型,并且当做RabbitMQ的插件来使用。
  • 高可用的队列。在同一个集群里,队列可以被镜像到多个机器中,以确保当其中某些硬件出现故障后,你的消息仍然安全。
  • 多协议。RabbitMQ 支持多种消息协议的消息传递。
  • 支持多种语言。你能想到的编程语言几乎都有与其相适配的RabbitMQ客户端。
  • 可视化管理工具。RabbitMQ附带了一个易于使用的可视化管理工具,它可以帮助你监控消息代理的每一个环节。
  • 追踪。如果你的消息系统有异常行为,RabbitMQ还提供了追踪的支持,让你能够发现问题所在。

RabbitMQ的缺点

  • 系统复杂度提高
  • 数据一致性问题
  • 系统可用性降低

RabbitMQ解决了啥问题

  • 削峰填谷
  • 业务系统在超高并发场景中,由于后端服务来不及同步处理过多、过快的请求,可能导致请求堵塞,严重时可能由于高负荷拖垮Web服务器。我们可以使用MQ来完成部分核心逻辑,让请求堆积在MQ,web服务就可以有效的减轻压力

  • 程序间解耦
  • 不同的业务端在联合开发功能时,常常由于排期不同、人员调配不方便等原因导致项目延期。其实,其根本原因是业务耦合过度。在多系统的交互之间我们加上MQ,能够有效的降低耦合

  • 异步处理
  • 调用第三方系统的时候,由于接口可能超时的问题或者部分核心业务场景,我们可以通过MQ来拆分业务的步骤,让核心步骤在在某个步骤的时候分开执行,用户不需要长时间等待。

  • 数据的最终一致性
  • 最典型的是我们目前分布式系统的普遍应用之后,分布式事务的一直性上的应用。

MQ很多,选择RabbitMQ的理由是啥?

市面上有很多类型的MQ,如:RocketMQ、Kafka、ActiveMQ等,那为什么选用RabbitMQ?

  • 开源、性能优秀、稳定性保障
  • 提供可靠性消息投递模式(confirm)、返回模式(return)
  • 集群模式丰富、表达式配置、HA(高可用)模式、镜像队列模型
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xlecho

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值