RabbitMQ教程
RabbitMQ安装
RabbitMQ消息发送和接收

RabbitMQ教程

课程介绍

1. 学习目标

能够独立搭建RabbitMQ并实现消息发送和接收

2 学习内容

• RabbitMQ的环境搭建

• 使用纯Java发送和接收消息

• 使用SpringBoot发送和接收消息

• 实战案例开发

RabbitMQ介绍

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

• 什么是MQ?

MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。

• 要解决什么样的问题?

在项目中,将一些无需即时返回且耗时的操作提取出来,进行了异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提高了系统的吞吐量。

RabbitMQ历史

Rabbit科技有限公司开发了RabbitMQ,并提供对其的支持。起初,Rabbit科技是LSHIFT和CohesiveFT在2007年成立的合资企业,2010年4月被VMware旗下的SpringSource收购。RabbitMQ在2013年5月成为GoPivotal的一部分。

RabbitMQ安装与使用

• 安装Linux以及必要的依赖包(Centos7)

• 下载RabbitMQ的安装包

• 安装,修改相关配置

RabbitMQ基本概念

RabbitMQ是一套开源(MPL)的消息队列服务软件,是由 LShift 提供的一个 Advanced Message Queuing Protocol (AMQP) 的开源实现,由以高性能、健壮以及可伸缩性出名的 Erlang 写成。

RabbitMQ服务支持下列操作系统:

  • Linux
  • WindowsNT 到 10
  • Windows Server2003 到 2016
  • macOS
  • Solaris
  • FreeBSD
  • TRU64
  • VxWorks

RabbitMQ支持下列编程语言:

  • Python
  • Java
  • Ruby
  • PHP
  • C#
  • JavaScript
  • Go
  • Elixir
  • Objective-C
  • Swift

RabbitMQ核心概念

1. RabbitMQ结构图

2. AMQP核心概念

Server:又称Broker接收客户端的连接,实现AMQP实体服务

Connection:链接,用于应用程序链接到Broker

Channel:网络通道,Channel是进行消息读写的一个通道每一个Channel都表示一个会话,有点类似我们之前的Session概念

Message:消息,消息就是我们真正用来进行传输的数据,Message由两部分组成,Properties和Body,Properties用于对消息就行修饰,比如优先级或是否持久等,Body则是消息数据的主体

Virtual host:虚拟地址,用于进行逻辑隔离,一个Server拥有过多个Vitual hsot,一个Virual hsot会拥有多个Exchange(交换机)和Queue(队列)

Exchange:交换机,用于具体接收消息并将消息根据绑定路由key存入到指定的队列中

Binding:绑定,就是将Exchange和Queue链接在一起,通过一个Routing key进行绑定

Routing key:路由规则,消息发送到Exchang后会根据这个规则将消息存入对应的Queue

Queue:队列也称Message Queue简称MQ,用于存放消息,并使用队列的结构先进先出、后进后出

3. RabbiMQ执行流程

   

RabbitMQ主要特性

• 可伸缩性:集群服务

• 消息持久化:从内存持久化消息到硬盘,再从硬盘加载到内存

全部教程