RabbitMQ简介

要了解RabbitMQ首先要知道什么是消息队列?为什么会产生消息队列?

  1. 首先,什么是消息队列呢?
    消息队列(Message Queue,简称MQ),从字面意思上看,本质是个队列,FIFO先入先出,只不过队列中存放的内容是message而已。
    其主要用途:不同进程Process/线程Thread之间通信。
  2. 为什么会产生消息队列?
    不同进程(process)之间传递消息时,两个进程之间耦合程度过高,改动一个进程,引发必须修改另一个进程,为了隔离这两个进程,在两进程间抽离出一层(一个模块),所有两进程之间传递的消息,都必须通过消息队列来传递,单独修改某一个进程,不会影响另一个;

不同进程(process)之间传递消息时,为了实现标准化,将消息的格式规范化了,并且,某一个进程接受的消息太多,一下子无法处理完,并且也有先后顺序,必须对收到的消息进行排队,因此诞生了事实上的消息队列;

MQ框架非常之多,比较流行的有RabbitMq、ActiveMq、ZeroMq、kafka,以及阿里开源的RocketMQ。本文主要介绍RabbitMq

  1. 什么是RabbitMQ呢?
    RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而群集和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库

  2. 应用场景
    1.异步处理
    2.系统解耦
    3.高负载请求/任务的缓冲处理

  3. RabbitMQ的整体设计
    消息队列的三个核心要素:消息产生者,消息队列,消息消费者
    RabbitMQ增加了交换器
    交换器:RabbitMQ接收到消息之后交换器会把对应的消息转发到对应的队列上面
    交换器类型:
    Direct exchange:直连交换机,转发消息到routigKey指定的队列
    Fanout exchange:广播交换机,转发消息到所有绑定队列(速度最快),不需要规则
    Topic exchange:主题交换机,按规则转发消息(最灵活),*号匹配多个单词,#号匹配一个单词,用.号隔开的为一个单词
    例如:
    在这里插入图片描述
    Headers exchange:首部交换机 (未接触),基于消息内容中的headers属性进行匹配

  4. 消息的流转过程
    在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

KEY_GSY

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

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值