极速掌握消息中间件 RabbitMQ 课程分享

释放双眼,带上耳机,认真聆听!

什么是消息队列?

消息(Message)是指在应用间传送的数据。消息可以非常简单,比如只包含文本字符串,也可以更复杂,可能包含嵌入对象。
消息队列(Message Queue)是一种应用间的通信方式,消息发送后可以立即返回,由消息系统来确保消息的可靠传递。消息发布者只管把消息发布到 MQ 中而不用管谁来取,消息使用者只管从 MQ 中取消息而不管是谁发布的。这样发布者和使用者都不用知道对方的存在。

为什么要使用消息队列?

从上面的描述中可以看出消息队列是一种应用间的异步协作机制,那什么时候需要使用 MQ 呢?
以常见的订单系统为例,用户点击【下单】按钮之后的业务逻辑可能包括:扣减库存、生成相应单据、发红包、发短信通知。在业务发展初期这些逻辑可能放在一起同步执行,随着业务的发展订单量增长,需要提升系统服务的性能,这时可以将一些不需要立即生效的操作拆分出来异步执行,比如发放红包、发短信通知等。这种场景下就可以用 MQ ,在下单的主流程(比如扣减库存、生成相应单据)完成之后发送一条消息到 MQ 让主流程快速完结,而由另外的单独线程拉取MQ的消息(或者由 MQ 推送消息),当发现 MQ 中有发红包或发短信之类的消息时,执行相应的业务逻辑。
以上是用于业务解耦的情况,其它常见场景包括最终一致性、广播、错峰流控等等。

RabbitMQ 的特点

RabbitMQ 是一个由 Erlang 语言开发的 AMQP 的开源实现。
AMQP :Advanced Message Queue,高级消息队列协议。它是应用层协议的一个开放标准,为面向消息的中间件设计,基于此协议的客户端与消息中间件可传递消息,并不受产品、开发语言等条件的限制。
RabbitMQ 最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。具体特点包括:
1、可靠性(Reliability)
RabbitMQ 使用一些机制来保证可靠性,如持久化、传输确认、发布确认。
2、灵活的路由(Flexible Routing)
在消息进入队列之前,通过 Exchange 来路由消息的。对于典型的路由功能,RabbitMQ 已经提供了一些内置的 Exchange 来实现。针对更复杂的路由功能,可以将多个 Exchange 绑定在一起,也通过插件机制实现自己的 Exchange 。
3、 消息集群(Clustering)
多个 RabbitMQ 服务器可以组成一个集群,形成一个逻辑 Broker 。
4、 高可用(Highly Available Queues)
队列可以在集群中的机器上进行镜像,使得在部分节点出问题的情况下队列仍然可用。
5、多种协议(Multi-protocol)
RabbitMQ 支持多种消息队列协议,比如 STOMP、MQTT 等等。
6、多语言客户端(Many Clients)
RabbitMQ 几乎支持所有常用语言,比如 Java、.NET、Ruby 等等。
7、 管理界面(Management UI)
RabbitMQ 提供了一个易的用户界面,使得用户可以监控和管理消息 Broker 的许多方面。
8、 跟踪机制(Tracing)
如果消息异常,RabbitMQ 提供了消息跟踪机制,使用者可以找出发生了什么。

课程目录

001.RabbitMQ: 什么是消息队列
002.RabbitMQ: 为什么使用消息队列
003.RabbitMQ: RabbitMQ的特点
004.RabbitMQ: 安装RabbitMQ
005.RabbitMQ: 启动和关闭服务
006.RabbitMQ: 插件添加
007.RabbitMQ: 用户管理
008.RabbitMQ: 权限分配
009.RabbitMQ: vhost
010.RabbitMQ: AMQP协议机制
011.RabbitMQ: 消息路由交换机类型
012.RabbitMQ: Direct类型交换机
013.RabbitMQ: Fanout类型交换机
014.RabbitMQ: Topic类型交换机
015.RabbitMQ: 消息发送
016.RabbitMQ: 消息发送测试
017.RabbitMQ: 消息接收
018.RabbitMQ: 消息接收测试
019.RabbitMQ: 交换机-direct-消息接收
020.RabbitMQ: 交换机-direct-消息发送
021.RabbitMQ: 交换机-fanout-消息接收
022.RabbitMQ: 交换机-fanout-消息发送
023.RabbitMQ: 交换机-topic-消息接收和发送
024.RabbitMQ: 交换机-fanout和topic使用场景对比
025.RabbitMQ: 事务性消息发送
026.RabbitMQ: 事务性消息接收
027.RabbitMQ: 发送者确认模式-普通确认
028.RabbitMQ: 发送者确认模式-批量确认
029.RabbitMQ: 发送者确认模式-异步确认
030.RabbitMQ: 消费者确认模式-手动确认消息
031.RabbitMQ: 消费者确认模式-事务对接收的影响以及防重复处理
032.RabbitMQ: SpringBoot集成RabbitMQ-direct发送消息
033.RabbitMQ: SpringBoot集成RabbitMQ-direct接收消息
034.RabbitMQ: SpringBoot集成RabbitMQ-异步监听接收消息
035.RabbitMQ: SpringBoot集成RabbitMQ-fanout接收消息
036.RabbitMQ: SpringBoot集成RabbitMQ-fanout发送消息
037.RabbitMQ: SpringBoot集成RabbitMQ-topic发送和接收消息
038.RabbitMQ: 集群-集群模式介绍
039.RabbitMQ: 集群-环境搭建
040.RabbitMQ: 集群-配置集群
041.RabbitMQ: 集群-SpringBoot链接集群
042.RabbitMQ: 集群-镜像集群配置

下载权限

查看
  • 免费下载
    评论并刷新后下载
    登录后下载

  • {{attr.name}}:
您当前的等级为
登录后免费下载登录 小黑屋反思中,不准下载! 支付以后下载 需要登录登录 评论后刷新页面下载评论 支付积分以后下载立即支付 支付以后下载立即支付 您当前的用户组不允许下载点击获取更高权限
您有每天免费下载所有资源次的特权,今日剩余 已取得下载权限
学习课程

Spring Boot 升级版最新教程全面讲解课程

2021-01-18 08:00

学习课程

三个月成为 Python 高级爬虫工程师

2021-01-19 12:30

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧

解锁优质资源

升级账户

解锁海量优质资源

立即开通

个人中心
今日签到
有新私信 私信列表
网站搜索