一、RabbitMQ简介及其作用
RabbitMQ简介
RabbitMQ是在2007 年发布,是一个在 AMQP(高级消息队列协议)基础上完成的,可复用的企业消息系统,是当前最主流的消息中间件之一。RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue 高级消息队列协议 )的开源实现,由于erlang 语言的高并发特性,性能较好,本质是个队列,FIFO 先入先出,里面存放的内容是message。RabbitMQ 是一个消息中间件:它接收消息并且转发,就类似于一个快递站,卖家把快递通过快递站,送到我们的手上,MQ也是这样,接收并存储消息,再转发。
RabbitMQ的主要作用:
- 异步处理。把消息放入消息中间件中,等到需要的时候再去处理。
- 流量削峰。例如秒杀活动,在短时间内访问量急剧增加,使用消息队列,当消息队列满了就拒绝响应,跳转到错误页面,这样就可以使得系统不会因为超负载而崩溃。
- 日志处理
- 应用解耦。假设某个服务A需要给许多个服务(B、C、D)发送消息,当某个服务(例如B)不需要发送消息了,服务A需要改代码再次部署;当新加入一个服务(服务E)需要服务A的消息的时候,也需要改代码重新部署;另外服务A也要考虑其他服务挂掉,没有收到消息怎么办?要不要重新发送呢?是不是很麻烦,使用MQ发布订阅模式,服务A只生产消息发送到MQ,B、C、D从MQ中读取消息,需要A的消息就订阅,不需要了就取消订阅,服务A不再操心其他的事情,使用这种方式可以降低服务或者系统之间的耦合。
二、使用yum安装部署的步骤
1.环境配置:
echo "export LC_ALL=en_US.UTF-8" >> /etc/profile
curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | sudo bash
curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash
2.安装RabbitMQ(记得输入: y)
sudo yum install rabbitmq-server-3.8.2-1.el7.noarch
3.启动RabbitMQ
systemctl start rabbitmq-server
4.添加admin用户(Username: admin Password: password)
rabbitmqctl add_user admin password
rabbitmqctl set_user_tags admin administrator
5.开放端口号15672,并且登录
rabbitmq:3.8版本开始,管理插件包含在RabbitMQ发行版中。与其他任何插件一样,必须先启用它,然后才能使用它。这是使用rabbitmq-plugins完成的:执行此命令即可:
rabbitmq-plugins enable rabbitmq_management
firewall-cmd --zone=public --add-port=15672/tcp --permanent
firewall-cmd --reload
firewall-cmd --zone=public --list-ports
浏览器访问ip: 15672,用admin,密码password即可登录
三、RabbitMQ相关的基础命令
1.开启web管理界面
rabbitmq-plugins enable rabbitmq_management
2.停止RabbitMQ
rabbitmqctl stop
3.设置开机启动
systemctl enable rabbitmq-server
4.启动RabbitMQ
systemctl start rabbitmq-server
5.看看端口有没有起来,查看状态
rabbitmqctl status
6.要检查RabbitMQ服务器的状态,请运行:
systemctl status rabbitmq-server