一、先来一张 RabbitMQ 流程图本文内容主要围绕这个流程图展开,利用 RabbitMQ 消息队列,实现生产者与消费者解耦,所以有必要先贴出来,涵盖了 RabbitMQ 很多知识点,如:
- 消息发送确认机制
- 消费确认机制
- 消息的重新投递
- 消费幂等性, 等等
二、实现思路
- 1.在虚拟机创建一个CentOS7上,并安装 RabbitMQ
- 2.开放QQ邮箱或者其它邮箱授权码,用于发送邮件
- 3.创建邮件发送项目并编写代码
- 4.发送邮件测试
- 5.消息发送失败处理
三、RabbitMQ安装
RabbitMQ 基于 erlang 进行通信,相比其它的软件,安装有些麻烦,不过本例采用rpm
方式安装,任何新手都可以完成安装,过程如下!
3.1、安装前命令准备
输入如下命令,完成安装前的环境准备。
yum install lsof build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c++ kernel-devel m4 ncurses-devel tk tc xz wget vim
3.2、下载 RabbitMQ、erlang、socat 的安装包
本次下载的是RabbitMQ-3.6.5
版本,采用rpm
一键安装,适合新手直接上手。
先创建一个rabbitmq
目录,本例的目录路径为/usr/app/rabbitmq
,然后在目录下执行如下命令,下载安装包!
- 下载erlang
wget www.rabbitmq.com/releases/erlang/erlang-18.3-1.el7.centos.x86_64.rpm
- 下载socat
wget http://repo.iotti.biz/CentOS/7/x86_64/socat-1.7.3.2-5.el7.lux.x86_64.rpm
- 下载rabbitMQ
wget www.rabbitmq.com/releases/rabbitmq-server/v3.6.5/rabbitmq-server-3.6.5-1.noarch.rpm
最终目录文件如下:
3.3、安装软件包
下载完之后,按顺序依次安装软件包,这个很重要哦~
- 安装erlang
rpm -ivh erlang-18.3-1.el7.centos.x86_64.rpm
- 安装socat
rpm -ivh socat-1.7.3.2-5.el7.lux.x86_64.rpm
- 安装rabbitmq
rpm -ivh rabbitmq-server-3.6.5-1.noarch.rpm
安装完成之后,修改rabbitmq
的配置,默认配置文件在/usr/lib/rabbitmq/lib/rabbitmq_server-3.6.5/ebin
目录下。
vim /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.5/ebin/rabbit.app
修改loopback_users
节点的值!
最后只需通过如下命令,启动服务即可!
rabbitmq-server start &
运行脚本之后,如果报错,例如下图!
解决办法如下:
vim /etc/rabbitmq/rabbitmq-env.conf
在文件里添加一行,如下配置!
NODENAME=rabbit@localhost
然后,再保存!再次以下命令启动服务!
rabbitmq-server start &
通过如下命令,查询服务是否启动成功!
lsof -i:5672
如果出现5672
已经被监听,说明已经启动成功!
3.4、启动可视化的管控台
输入如下命令,启动控制台!
rabbitmq-plugins enable rabbitmq_management
用浏览器打开http://ip:15672
,这里的ip
就是 CentOS 系统的 ip,结果如下:
账号、密码,默认为guest
,如果出现无法访问,检测防火墙是否开启,如果开启将其关闭即可!
登录之后的监控平台,界面如下: