rabbitMQ消息队列的介绍、安装与基本使用
一、什么是消息队列?
它是消息传输过程中存放消息的容器
二、什么是rabbitMQ?
用Erlang编写的,实现了高级消息队列协议(AMQP)的消息中间件
三、消息队列的好处
1、跨语言,支持PHP,GO,JAVA,Python ....
2、解耦
3、异步
4、削峰
四、应用场景
1、跨系统间的调用
2、系统内的异步调用
3、消息驱动的场景
4、跨语言之间的调用
五、相关术语
Producer 生产者:发送消息到队列
Consumer 消费者:从队列中取出消息消费掉
Queue 存储消息的容器
Channel 消息通道
Exchange 交换机:决定消息按照指定规则发送到队列中
Routing Key:路由关键字
六、 rabbitMQ与Erlang版本关系图
七、windows环境安装
- erlang版本:opt_win64_24.0_2.exe
- rabitMQ版本: rabbitmq-server-3.9.7.exe
7.1 根据需求下载指定的erlang和rabitmq版本
7.2 安装erlang并设置环境变量
新建系统环境变量ERLANG_HOME
将erlang可执行命令目录添加到系统环境变量path中
打开cmd控制台,输入"erl",输入如下页面则安装成功
7.3 安装rabbitMQ并设置环境变量
设置RABBITMQ_SERVER环境变量
将rabbitmq可执行命令目录添加到系统环境变量path中
7.4 启用RabbitMQ管理插件
RabbitMQ的安装包默认是没有启用任何插件的,所以我们需要运行以下命令来启用RabbmitMQ的管理插件,"rabbitmq-plugins.bat enable rabbitmq_management"
出现上图所示界面说明插件启动成功!
7.5 浏览器访问管理界面
地址:http://localhost:15672/
账号(默认):guest
密码(默认):guest
至此windows版本rabbitmq的安装已经完成!!
八、Linux环境安装(Centos7)
- erlang版本:otp_src_24.0.tar.gz
- rabitMQ版本: rabbitmq-server-generic-unix-3.9.7.tar.xz
- socat版本:
RabbitMQ 依赖于 erlang 环境,所以先安装 Erlang 注意二者之间的版本依赖,先在 RabbitMQ 看清楚当前 RabbitMQ 依赖于的 relang 对应版本信息。
8.1 Erlang 安装
来到 Erlang 官网,找到自己需要安装的版本。
将下载好的 Erlang ,上传到 linux 服务器上,建议上传到 /usr/local 路径下
开始安装步骤
# 先到 /usr/local 文件下,开始解压
# cd /usr/local
# 解压 erlang 文件
# tar -zxvf otp_src_24.0.tar.gz
# 安装 erlang 依赖工具
# yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel unixODBC-devel
# 在当前文件下 /usr/local 下,新建 erlang 用来存环境
# mkdir erlang
# 进入到 otp_src_24.0 里
# cd otp_src_24.0
# 执行安装环境, 注意 --prefix=是你需要安装在那个文件夹里,一定是自己创建的空文件夹
# ./configure --prefix=/usr/local/erlang --without-javac
# 执行完后,预安装,安装到上面配置的 --prefix=文件夹内
# make && make install
# 测试是否安装成功
# ./bin/erl
Erlang/OTP 24 [erts-12.0] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:1]
Eshell V12.0 (abort with ^G)
1>
# 执行命令,查看是否有效
1> io:format("hello world~n", []).
hello world
ok
# 综上能一模一样显示,表示 erlang 安装成功
# 接下来就是配置环境变量
# vim /etc/profile
# 配置内容
export ERLANG=/usr/local/erlang
export PATH=$PATH:${ERLANG}/bin
# 刷新环境配置
# source /etc/profile
# 直接输入 erl,若是可以进入以下效果,表示环境变量配置成功
Erlang/OTP 24 [erts-12.0] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:1]
Eshell V12.0 (abort with ^G)
1>
8.2 RabbitMQ 安装
版本选择:RabbitMQ 依赖于 erlang 环境,所以先安装 Erlang 注意二者之间的版本依赖,先在 RabbitMQ 看清楚当前 RabbitMQ 依赖于的 relang 对应版本信息。
通过版本选择,erlang是24.0/version,而RabbitMQ是3.9.7/version,打开官网下载,建议来到 GitHub 上来下载,明显可以看到版本差异和源码的下载。
下载好后,上传到 linux 的 /usr/local目录下 ,把这当成自定义安装方式位置
开始安装步骤
# 解压安装 xz
# xz -d rabbitmq-server-generic-unix-3.9.7.tar.xz
# 解压安装 tar
# tar -xvf rabbitmq-server-generic-unix-3.9.7.tar
# 重命名 rabbitmq
# mv rabbitmq_server-3.9.7/ rabbitmq
# 配置环境变量
# vim /etc/profile
# 内容
export RABBITMQ=/usr/local/rabbitmq
export PATH=$PATH:${RABBITMQ}/sbin
# 刷新环境变量
# source /etc/profile
RabbitMQ 相关操作命令
说明 | 命令 |
---|---|
页面管理插件 | rabbitmq-plugins enable rabbitmq_management |
开启服务(页面形式) | rabbitmq-server |
开启服务(后台运行) | rabbitmq-server -detached |
创建用户(需要开启服务) | rabbitmqctl add_user 用户名 密码 |
设置用户权限(需要开启服务) | rabbitmqctl set_permissions -p “/” 用户名 “.” “.” “.*” |
设置用户角色(系统管理员)(需要开启服务) | rabbitmqctl set_user_tags 用户名 administrator |
服务重启 | rabbitmq-server restart |
停止服务 | rabbitmqctl stop |
查看服务状态 | rabbitmqctl status |
展示角色 | rabbitmqctl list_users |
开启某个插件(需要重启服务) | rabbitmq-plugins enable xx |
关闭某个插件(需要重启服务) | rabbitmq-plugins disable xx |
执行命令
# 安装页面管理插件
# rabbitmq-plugins enable rabbitmq_management
# 开启服务,后台运行
# rabbitmq-server -detached
# 注:添加用户和权限都要,先开启 RabbitMQ 服务
# 页面管理,用户 guest 是不能使用的,手动创建一个用户,并赋予权限
# rabbitmqctl add_user admin admin
# 添加权限 .* 表示最高权限/所有权限
# rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
# 添加用户名角色,这里添加为 administrator (系统管理员)
# rabbitmqctl set_user_tags admin administrator
# 综上修改,必须重启
# rabbitmq-server restart