这两天有个功能实现需要用到rabbitmq,之前做大数据的时候用过kafka,对rabbitmq了解的比较少,这里进行学习总结。
RabbitMQ能为你做什么?
消息系统允许软件、应用相互连接和扩展。这些应用可以相互链接起来组成一个更大的应用,或者将用户设备和数据进行连接。消息系统通过将消息的发送和接收分离来实现应用程序的异步和解耦。
或许你在考虑实现以下功能:
- 数据投递,非阻塞操作或推送通知。
- 发布/订阅,异步处理,或者工作队列。
这些都是可以通过消息系统实现的。RabbitMQ是一个消息代理 - 一个消息系统的媒介。它可以为你的应用提供一个通用的消息发送和接收平台,并且保证消息在传输过程中的安全。
有什么亮点:
- 可靠性:持久性、投递确认、高可用和发布者证实;
- 集群:同一局域网络下的多个RabbitMQ服务器可以聚合在一起,实现同一个逻辑;
- 路由灵活;
- 多协议:支持多种消息协议的消息传递;
- 可视化管理界面:可以在界面进行可视化管理;
- 有较大的社区;
虚拟机上安装RabbitMQ
- 安装erlang;
- 安装RabbitMQ;
- 启动命令;
- WEB管理;
- 用户管理;
- 登录;
由于rabbitmq是基于erlang语言开发的,所以必须先安装erlang。
代码语言:javascript复制安装依赖:yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget gtk2-devel binutils-devel
下载wget http://file.zhaobl.com/common/otp_src_22.0.tar.gz
解压:tar -zxvf otp_src_22.0.tar.gz
移走:mv otp_src_22.0 /usr/local/
切换目录:cd /usr/local/otp_src_22.0/
创建即将安装的目录:mkdir ../erlang
配置安装路径:./configure --prefix=/usr/local/erlang
安装:make install
查看一下是否安装成功:ll /usr/local/erlang/bin
添加环境变量:echo 'export PATH=$PATH:/usr/local/erlang/bin' >> /etc/profile
刷新环境变量:source /etc/profile
甩一条命令瞬间进入了一个未知的世界:erl
在里面输入halt(). 命令退出来安装RabbitMQ:
下载:wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.15/rabbitmq-server-generic-unix-3.7.15.tar.xz
由于是tar.xz格式的所以需要用到xz,没有的话就先安装 :yum install -y xz
第一次解压:/bin/xz -d rabbitmq-server-generic-unix-3.7.15.tar.xz
第二次解压:tar -xvf rabbitmq-server-generic-unix-3.7.15.tar
移走:mv rabbitmq_server-3.7.15/ /usr/local/
改名:mv /usr/local/rabbitmq_server-3.7.15 rabbitmq
配置环境变量:echo 'export PATH=$PATH:/usr/local/rabbitmq/sbin' >> /etc/profile
刷新环境变量:source /etc/profile
创建配置目录:mkdir /etc/rabbitmq
启动命令启动:rabbitmq-server -detached
停止:rabbitmqctl stop
状态:rabbitmqctl status
防火墙之类的请自行处理(5672和15672端口)
WEB管理
代码语言:javascript复制开启web插件:rabbitmq-plugins enable rabbitmq_management
访问:http://127.0.0.1:15672/
默认账号密码:guestguest(这个账号只允许localhost访问)
用户管理
代码语言:javascript复制查看所有用户:rabbitmqctl list_users
添加一个用户:rabbitmqctl add_user xuan 123456
配置权限:rabbitmqctl set_permissions -p "/" xuan ".*" ".*" ".*"
查看用户权限:rabbitmqctl list_user_permissions xuan
设置tag:rabbitmqctl set_user_tags xuan administrator
删除默认用户:rabbitmqctl delete_user guest
如果是在远程服务器上安装的,这个时候就可以进行远程访问了。