rabbitmq是覆盖范围最广的开源消息代理,支持绝大多数开发语言,社区也很活跃。
一、最重要的概念:
消息队列(queue):接收和转发消息,类似快递公司。 生产者(producer)制造和发送消息。 消费者(consumer)从队列获取消息,并使用。
二、为什么使用消息队列
1、代码解耦,提高系统稳定性。
比如订单系统的数据可能会有很多的系统会使用到,如果不断的增多系统需要该数据,不使用消息队列就需要分别调用每个系统的相关接口推送数据,会涉及持续的改动代码。
2、应对流量高峰,降低流量冲击
高并发请求进来,先在队列中排队,我们如果能处理过来,就可以快速处理,如果处理不过来,消费的速度可以慢一些,可以保证系统整体的稳定性。
3、异步执行,提高系统的响应速度
餐馆的两种排队方式,第一种是取号机取号,你就可以去干别的了,当快到你时,推送一个消息,就可以直接进餐了。第二种是人肉排队。如果没有这个类似消息队列的取号机, 你就必须人肉在那里排队了。。
三、消息队列的特性
1、性能好
远大于数据库和业务程序的处理能力。
2、基础组件
是类似于数据库的基础组件,所有系统均可接入。
3、支持消息确认
支持消费者的消息确认,如果不确认,不会导致消息丢掉。
四、rabbitMQ的特点
1、路由能力灵活强大
从生产者发送出去,经过什么路径发送给消费者。可以灵活的配置这个路径。
2、开源免费
3、支持众多开发语言
java、php、python、go、OC、ruby、javascript、csharp等。
4、应用广泛,社区活跃
5、有开箱即用的监控和管理后台
五、rabbitMQ核心概念
六、rabbitMQ的安装
1 Linux下安装RabbitMQ 官方安装指南:https://www.rabbitmq.com/install-rpm.html 我们将要安装的RabbitMQ的版本是3.8.2 https://packagecloud.io/rabbitmq/rabbitmq-server/packages/el/7/rabbitmq-server-3.8.2-1.el7.noarch.rpm 不需要单独安装Erlang环境。 1 环境配置: 前提:在一个新建的阿里云的Cent OS 7.6上安装,不要对yum换源,否则可能会安装失败。
echo "export LC_ALL=en_US.UTF-8" >> /etc/profile
source /etc/profile
下面两个安装方法,任选其一即可,推荐方法一: 2 方法一(推荐) 第一步:执行
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
第三步:
sudo yum install rabbitmq-server-3.8.2-1.el7.noarch
第四步,看到类似以下的画面:
输入y 即可完成安装。 启动RabbitMQ
systemctl start rabbitmq-server
看看端口有没有起来,查看状态
rabbitmqctl status
配置阿里云安全组,打开15672端口
添加admin用户:
rabbitmqctl add_user admin password
rabbitmqctl set_user_tags admin administrator
浏览器访问ip: 15672 用admin,密码password即可登录 3 方法二(优先推荐方法一,如果方法一失败了,尝试本方法二) 导入密钥 rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
下载rpm安装包: wget --content-disposition https://packagecloud.io/rabbitmq/rabbitmq-server/packages/el/7/rabbitmq-server-3.8.2-1.el7.noarch.rpm/download.rpm 如果速度比较慢,就用: wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.2/rabbitmq-server-3.8.2-1.el7.noarch.rpm
下载完成后,安装:
yum install rabbitmq-server-3.8.2-1.el7.noarch.rpm
如果出现解压错误,说明下载了多次,用ls -la看一下有几个文件,如果有多个安装包,要把多余的删掉,把正确的改名为rabbitmq-server-3.8.2-1.el7.noarch.rpm,再执行yum install来安装 到这里RabbitMQ就安装好了 RabbitMQ常用命令 开启web管理界面
rabbitmq-plugins enable rabbitmq_management
停止RabbitMQ
rabbitmqctl stop
设置开机启动
systemctl enable rabbitmq-server
启动RabbitMQ
systemctl start rabbitmq-server
看看端口有没有起来,查看状态
rabbitmqctl status
要检查RabbitMQ服务器的状态,请运行:
systemctl status rabbitmq-server
2 Mac OS下的安装和启动 官方安装指南:https://www.rabbitmq.com/install-homebrew.html
在Mac OS X中使用brew工具,可以很容易的安装RabbitMQ的服务端,只需要按如下命令操作即可:
brew更新到最新版本,执行:
brew update
安装Erlang,执行:
brew install erlang
安装RabbitMQ Server,执行:
brew install rabbitmq
通过上面的命令安装后,RabbitMQ Server的命令会被安装到/usr/local/opt/rabbitmq/sbin,并不会自动加到用户的环境变量中去: 启动Terminal
进入当前用户的home目录
输入 cd ~
编辑.bash_profile文件
输入open -e .bash_profile,这时./bash_profile就会打开,可以在后面加入要写入的环境变量(注意:从后往前读,注意覆盖) 所以我们需要在.bash_profile或.profile文件中增加下面内容:
export PATH=$PATH:/usr/local/opt/rabbitmq/sbin
保存文件,关闭.bash_profile
更新刚配置的环境变量 输入source .bash_profile 这样,我们就可以通过rabbitmq-server命令来启动RabbitMQ的服务端了。
rabbitmq-server
打开管理后台
rabbitmq-plugins enable rabbitmq_management
添加admin账号,赋予administrator权限
rabbitmqctl add_user admin password
rabbitmqctl set_user_tags admin administrator
然后访问浏览器进入管理页面 3 Windows安装 不推荐,因为要求系统用户名和计算机名必须是英文,而Win10改名比较麻烦,而且可能会有其他坑,而且和未来的实际工作场景严重不符,没有Windows作为服务器的。
官方安装指南:https://www.rabbitmq.com/install-windows.html 详细步骤:https://www.cnblogs.com/saryli/p/9729591.html
安装Erland,通过官方下载页面http://www.erlang.org/downloads获取exe安装包,直接打开并完成安装。 安装RabbitMQ,通过官方下载页面https://www.rabbitmq.com/install-windows.html获取exe安装包并安装,下载地址:https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.2/rabbitmq-server-3.8.2.exe
下载完成后,直接运行安装程序。 RabbitMQ Server安装完成之后,会自动的注册为服务,并以默认配置启动起来。
用终端cmd输入: cd E:\你的RabbitMQ按照地址\sbin
rabbitmq-server rabbitmq-plugins enable rabbitmq_management 然后就可以用guest访问http://127.0.0.1:15672/#/
评论