RabbitMQ---消息中间件

RabbitMQ—消息中间件

1、什么是MQ?

MQ全称 Message Queue(消息队列),是在消息的传输过程中保存消息的容器。多用于分布式系统之间进行通信。
是一个开源的消息代理和队列服务器,用来通过普通协议在完全不同的应用之间共享数据。使用 Erlang 语音编写,基于 AMQP 协议。

2、MQ的优缺点

优点:

  1. 应用解耦:提高系统容错性和可维护性。
  2. 异步提速:提升用户体验和系统吞吐量。
  3. 削峰填谷:提高系统稳定性。

缺点:

  1. 系统可用性降低。
  2. 系统引用的外部依赖越多,系统稳定性越差,一旦MQ宕机,就会对业务造成影响。
  3. 系统复杂度提高:MQ的加入大大增加了系统的复杂度,以前系统间是同步的远程调用,现在是通过MQ进行异步调用。
  4. 一致性问题:A 系统处理完业务,通过 MQ 给B、C、D三个系统发消息数据,如果 B 系统、C 系统处理成功,D 系统处理失败。如何保证消息数据处理的一致性?

3、常见的MQ有哪些?

RabbitMQActiveMQRocketMQKafka
公司/社区RabbitApache阿里Apache
开发语言ErlangJavaJavaScla&Java
协议支持AMQP,XMPP,SMTP,STOMPOpenWires,STOMP,PEST,XMPP,AMQP自定义自定义协议,社区封装了Http协议支持
客户端支持语言官方支持Erlang,Java,Ruby等社区产出多种API,几乎支持所有语言Java,C,C++,Python,PHP,Perl,.net等Java,C++(不成熟)官方支持Java,社区产出多种API,如PHP,Python等
单机吞吐量万级(其次)万级(最差)十万级(最好)十万级(次之)
消息延迟微秒级毫秒级毫秒级毫秒以内
功能特性并发能力强,性能极其好,延时低,社区活跃,管理界面丰富老牌产品,成熟度高,文档较多MQ功能比较完备,扩展性佳只支持主要的MQ功能,毕竟是为大数据领域准备的。

4、安装RabbitMQ

点这里】这里有详细介绍,这里就不多赘述。

5、RabbitMQ的结构以及每个组件的作用

在这里插入图片描述

  1. Broker:接收和分发消息的应用,RabbitMQ Server就是 Message Broker。
  2. Virtual host:出于多租户和安全因素设计的,把 AMQP 的基本组件划分到一个虚拟的分组中,类似于网络中的 namespace 概念。当多个不同的用户使用同一个 RabbitMQ server 提供的服务时,可以划分出多个vhost,每个用户在自己的 vhost 创建 exchange/queue 等。
  3. Connection:publisher/consumer 和 broker 之间的 TCP 连接。
  4. Channel:如果每一次访问 RabbitMQ 都建立一个 Connection,在消息量大的时候建立 TCP Connection的开销将是巨大的,效率也较低。Channel 是在 connection 内部建立的逻辑连接,如果应用程序支持多线程,通常每个thread创建单独的 channel 进行通讯,AMQP method 包含了channel id 帮助客户端和message broker 识别 channel,所以 channel 之间是完全隔离的。Channel 作为轻量级的 Connection 极大减少了操作系统建立 TCP connection 的开销。
  5. Exchange:message 到达 broker 的第一站,根据分发规则,匹配查询表中的 routing key,分发消息到queue 中去。常用的类型有:direct (point-to-point), topic (publish-subscribe) and fanout (multicast)。
  6. Queue:消息最终被送到这里等待 consumer 取走。
  7. Binding:exchange 和 queue 之间的虚拟连接,binding 中可以包含 routing key。Binding 信息被保存到 exchange 中的查询表中,用于 message 的分发依据。
  8. Virtual Host: 虚拟主机: 一个RabbitMQ服务器中由很多虚拟主机,而每一个虚拟主机,都是独立的。里面都要自己的exchange,queue。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

未来.....

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

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

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

打赏作者

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

抵扣说明:

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

余额充值