RabbitMQ 是一个由 Erlang 语言开发的 AMQP 的开源实现。最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。
RabbitMQ常见使用场景,例:(1)用户注册后,需要发注册邮件和注册短信. (2)双11是购物狂节,用户下单后,订单系统需要通知库存系统,传统的做法就是订单系统调用库存系统的接口. (3)秒杀活动,一般会因为流量过大,导致应用挂掉,为了解决这个问题,一般在应用前端加入消息队列。 可以有效控制人数.
一.RabbitMQ架构设计图
名称 | 解释 |
---|---|
生产者 | 消息的发布者,是一个向交换器发布消息的客户端应用程序 |
Exchange | 交换器,用来接收生产者发送的消息并将这些消息路由给服务器中的队列。 |
Queue | 消息队列,用来保存消息直到发送给消费者。它是消息的容器,也是消息的终点。一个消息可投入一个或多个队列。消息一直在队列里面,等待消费者连接到这个队列将其取走。 |
消费者 | 消息的消费者,表示一个从消息队列中取得消息的客户端应用程序。 |
RabbitMQ的工作原理
RabbitMQ是消息代理。从本质上说,它接受来自生产者的信息,并将它们传递给消费者。在两者之间,它可以根据你给它的路由,缓冲规则进行传递消息。
示例图
二.配置ErLang环境
因为RabbitMQ是Erlang语言所写,所以需要安装Erlang环境库
RabbitMQ与Erlang版本冲突会造成服务无法正常启动,版本参考
https://www.cnblogs.com/gne-hwz/p/10714013.html
wget http://www.erlang.org/download/otp_src_19.2.tar.gz
解压缩开发包
tar zxvf /srv/ftp/otp_src_19.2.tar.gz /usr/local/src/
在编译之前需要安装erlang的环境支持
apt-get install libncurses5-dev
apt-get install openssl
apt-get install libssl-dev
apt-get install unixodbc
建立一个编译后存放的目录
mkdir -p /usr/local/erlang
进入src目录
cd /usr/local/src/otp_src_19.2/
预编译处理
./configure --prefix=/usr/local/erlang
编译与安装
make && make install
将开发包配置到环境变量中
vim /etc/profile
source /etc/profile
在profile加上如下内容
export ERLANG_HOME=/usr/local/erlang
export PATH=:$ERLANG_HOME/bin:
进入bin目录erl
/usr/local/erlang/bin/erl
输入
io:format("hello sjw").
能正常输出io语句,说明成功配置erlang
退出erl
halt().
三.安装RabbitMQ
参考
https://blog.csdn.net/qq_22638399/article/details/81704372
启动rabbitmq(有小兔子出现代表成功)
创建用户
/usr/local/rabbitmq/sbin/rabbitmqctl add_user sjw 123
授权管理员
/usr/local/rabbitmq/sbin/rabbitmqctl set_user_tags sjw administrator
登陆rabbitmq,进入管理网址
进行账户虚拟机地址授权
成功!!!