每天早上七点三十分,准时推送干货
最近一直在学习RabbitMQ,但是不知如何在实际业务中撸出它的功效,最近刚好看到一篇相关案例,有一些心得,想和小伙伴们分享一下!
一、先来一张 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
,如果出现无法访问,检测防火墙是否开启,如果开启将其关闭即可!
登录之后的监控平台,界面如下:
四、邮箱授权码的获取
获取邮箱授权码的目的,主要是为了通过代码进行发送邮件,例如 QQ 邮箱授权码获取方式,如下图:
点击【开启】按钮,然后发送短信,即可获取授权码,该授权码就是配置文件spring.mail.password
需要的密码!

五、项目介绍
springboot版本:2.1.5.RELEASE
RabbitMQ版本:3.6.5
SendMailUtil:发送邮件工具类
ProduceServiceImpl:生产者,发送消息