RabbitMQ

RabbitMQ

  • RabbitMQ简介及AMQP协议
  • RabbitMQ安装与使用
  • RabbitMQ核心概念
  • 与SpringBoot2.x整合-极速入门
  • 保障100%的消息可靠性投递方案落地实战

RabbitMQ简介

RabbitMQ是一个开源的消息代理和队列服务器,用来通过普通协议在完全不同的应用之间共享数据,RabbitMQ是使用Erlang语言来编写的,并且RabbitMQ是基于AMQP协议的。

  • 目前很多互联网大厂都在使用RabbitMQ
  • RabbitMQ底层采用Erlang语言进行编写
  • 开源、性能优秀,稳定性保障
  • 与SpringAMQP完美的整合,API丰富
  • 集群模式丰富,表达式配置,HA模式,镜像队列模型
  • 保证数据不丢失的前提做到高可靠性、可用性
  • AMQP全称:Advanced Message Queuing Protocol
  • AMQP翻译:高级消息队列协议

AMQP协议模型

RabbitMQ_第1张图片

RabbitMQ安装

官网地址:http://www.rabbitmq.com/
RabbitMQ_第2张图片
Windows和Linux下的安装

1.Windows安装步骤

下载地址:http://www.rabbitmq.com/download.html
RabbitMQ_第3张图片
安装
下载后如果直接安装,会弹窗,大概意思就是安装RabbitMQ之前,你必须先安装Erlang
RabbitMQ_第4张图片

然后我们找到Erlang的官网下载地址:
http://www.erlang.org/downloads
RabbitMQ_第5张图片

将Erlang下载下来并安装
RabbitMQ_第6张图片
点击next
RabbitMQ_第7张图片
RabbitMQ_第8张图片
RabbitMQ_第9张图片

安装完成后,需要配置一下系统的环境变量
此电脑–>鼠标右键“属性”–>高级系统设置–>环境变量–>“新建”系统环境变量
如下新增一个
变量名为ERLANG_HOME
变量值为自己的安装目录
RabbitMQ_第10张图片
点击确定
然后找到pass双击
RabbitMQ_第11张图片
新增%ERLANG_HOME%\bin,然后点击确定
在这里插入图片描述
之后win+r打开命令行
输入erl测试,若看到版本号,就说明配置成功
RabbitMQ_第12张图片
之后安装RabbitMQ
安装方法同Erlang
RabbitMQ_第13张图片

安装完之后安装RabbitMQ-Plugins
打开命令行进入安装目录RabbitMQ Server\rabbitmq_server-3.7.8\sbin下
RabbitMQ_第14张图片
进入目录后,输入rabbitmq-plugins enable rabbitmq_management命令进行安装
RabbitMQ_第15张图片

我的是安装完直接运行了,所以我直接输入http://localhost:15672就能访问登录页面,RabbitMQ_第16张图片

如果输入没有运行,则打开sbin目录,双击rabbitmq-server.bat
RabbitMQ_第17张图片
之后再输入http://localhost:15672就进来了
默认用户名和密码都是guest,登陆即可。
RabbitMQ_第18张图片
到这里windows安装RabbitMQ就完成了
配置文件在你的安装目录下
…\RabbitMQ Server\rabbitmq_server-3.7.8\ebin\rabbit.app

2.Linux安装步骤

  • 首先将关键的软件开发包安装下:
    yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c++ kernel-devel m4 ncurses-devel tk tc xz
  • 然后下载必要的安装包(这里我下载的是rpm,安装方便,如果想下载tar.gz的请自动百度解压、编译和安装方法),如下安顺序安装:
    http://www.rabbitmq.com/releases/erlang/
    erlang-19.0.4-1.el7.centos.x86_64.rpm
    http://repo.iotti.biz/CentOS/7/x86_64/
    socat-1.7.3.2-5.el7.lux.x86_64.rpm
    http://www.rabbitmq.com/install-rpm.html
    rabbitmq-server-3.7.8-1.el7.noarch.rpm
  • 配置vim /etc/hosts 以及 /etc/hostname
  • 安装:
    rpm -ivh 安装包全称.rpm,安装完之后环境变量已经自动配置好了
  • 修改配置文件:
    vim /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.5/ebin/rabbit.app
    比如修改密码、配置等等,例如:loopback_users中的<<“guest”>>,只保留guest
    服务器的启动和停止:
    启动 rabbitmq-server start &
    停止 rabbitmqctl app_stop
  • 管理插件
    rabbitmq-plugins enable rabbitmq_management
  • 访问地址:http://localhost:15672

RabbitMQ的整体架构

RabbitMQ_第19张图片

AMQP核心概念

  • Server:又称Broker,接受客户端的连接,实现AMQP实体服务
  • Connection:连接,应用程序与Broker的网络连接
  • Channel:网络通信,几乎所有的操作都在Channel中进行,Channel是进行消息读写的通道。客户端可建立多个Channel,每个Channel代表一个会话任务。
  • Message:消息,服务器和应用程序之间传送的数据,由Properties和Body组成。Properties可以对消息进行形式,比如消息的优先级、延迟等高级特性;Body则就是消息体内容。
  • Virtual host:虚拟地址,用于进行逻辑隔离,最上层的消息路由。一个Virtual Host里面可以有若干个Exchange和Queue,用一个Virtual Host里面不能有相同名称的Exchange或Queue
  • Exchange:交换机,接收消息,根据由键转发消息到绑定的队列
  • Binding:Exchange和Queue之间的虚拟连接,binding中可以包含routing key
  • Routing key:一个路由规则,虚拟机可用它来确定如何路由一个特定消息
  • Queue:也称为Message Queue,消息队列,保存消息并将它们转发给消费者

RabbitMQ消息流转过程

RabbitMQ_第20张图片

RabbitMQ整合SpringBoot2.x

  • SpringBoot与RabbitMQ集成非常简单,不需要做任何的额外设置只需要两步即可:
    – 引入相关依赖
    – 对application.properties进行配置

继续编写中。。。

你可能感兴趣的:(RabbitMQ)