初识消息队列的世界
MQ的概述
MQ(message queue)即消息队列,遵循FIFO先入先出原则。其中消息可以很简单,也可也很复杂。
MQ通常用于系统通信(数据的传输)
1.同步通信
2.异步通信
MQ就是容器的一种具体实现,RabbitMQ就是MQ的一种实现
MQ的作用
MQ的主要工作就是接收并转发消息,对于不同的业务场景有不同的作用。
1.异步解耦:对较耗时的操作不立即返回结果,通过异步处理后才返回结果。
2.流量削峰:对于突发的流量,使用MQ处理可以控制流量,避免服务崩溃。
3.消息分发:多个系统需要对同⼀数据做出响应时,使用MQ进行消息分发。
4.延迟通知:需要在特定时间后发送通知的场景中,使用MQ的延迟消息功能。
RabbitMQ的优势
当前主流的3种MQ:
1.Kafka
在日志领域比较成熟,功能较为简单,追求高吞吐量,性能卓越,单机吞吐量到达百万级。
2.RocketMQ
基于Java语言开发,借鉴Kafka进行设计,功能更加强大,吞吐量达十万级,在可用性、可靠性、稳定性方面有出色表现,但支持的客户端语言不多,社区活跃度一般。
3.RabbitMQ
基于Erlang语言开发,功能较为完备,性能较好,吞吐量达万级,开源界面友好,支持大部分主流语言,社区活跃度较高。
RabbitMQ的优势:
RabbitMQ较于Kafka具有更丰富的功能,相较RocketMQ具有活跃的社区。
RabbitMQ是一个实现了AMQP的消息队列服务,是当前主流的消息中间件之一。
AMQP,即Advanced Message Queuing Protocol(⾼级消息队列协议),是⼀个通⽤的应⽤层协议,提供统⼀消息服务的协议, 为⾯向消息的中间件设计。基于此协议的客⼾端与消息中间件可传递消息,并不受客⼾端或中间件, 开发语⾔等条件的限制。
在Ubuntu下安装RabbitMQ
RabbitMq需要Erlang语言的支持,在安装RabbitMq之前需要安装erlang。
1.更新软件包
sudo apt-get update
(如果当前没有在root用户下,命令前需要加sudo)
Get的资源,不同环境会有所不同。
2.安装erlang
sudo apt-get install erlang
等待安装过程中会出现下面提示,输入y即可继续安装
3.查看是否安装成功
erl
安装成功会出现版本信息,输入hault(). 退出
4.安装rabbitmq
sudo apt-get install rabbitmq-server
此处也会出现下面提示,输入y即可继续安装
安装完成会自动启动。
5.确认安装结果
systemctl status rabbitmq-server
出现active(running)表示启动成功,如果未启动成功,前往/var/log/rabbitmq/目录下查看日志情况,检查完原因,输入sudo service rabbitmq-server start手动启动。
6.启用Rabbitmq管理界面
rabbitmq-plugins enable rabbitmq_management
7.访问界面
IP+port(15672为默认端口号)
输入默认的guest账号和guest密码,会出现无法进入。
8.通过命令添加管理员
添加用户admin,密码:admin
rabbitmqctl add_user admin admin
添加权限
rabbitmqctl set_user_tags admin administrator
此时回到界面输入对应的用户名和密码,即可进入界面