vlambda博客
学习文章列表

消息中间件初识和安装 — RabbitMQ

这两天有个功能实现需要用到rabbitmq,之前做大数据的时候用过kafka,对rabbitmq了解的比较少,这里进行学习总结。

RabbitMQ能为你做什么?

消息系统允许软件、应用相互连接和扩展。这些应用可以相互链接起来组成一个更大的应用,或者将用户设备和数据进行连接。消息系统通过将消息的发送和接收分离来实现应用程序的异步和解耦。

或许你在考虑实现以下功能:
  1. 数据投递,非阻塞操作或推送通知。
  2. 发布/订阅,异步处理,或者工作队列。

这些都是可以通过消息系统实现的。RabbitMQ是一个消息代理 - 一个消息系统的媒介。它可以为你的应用提供一个通用的消息发送和接收平台,并且保证消息在传输过程中的安全。

有什么亮点:

  • 可靠性:持久性、投递确认、高可用和发布者证实;

  • 集群:同一局域网络下的多个RabbitMQ服务器可以聚合在一起,实现同一个逻辑;

  • 路由灵活;

  • 多协议:支持多种消息协议的消息传递;

  • 可视化管理界面:可以在界面进行可视化管理;

  • 有较大的社区;


虚拟机上安装RabbitMQ

  • 安装erlang;

  • 安装RabbitMQ;

  • 启动命令;

  • WEB管理;

  • 用户管理;

  • 登录;


由于rabbitmq是基于erlang语言开发的,所以必须先安装erlang。
安装依赖: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管理

开启web插件:rabbitmq-plugins enable rabbitmq_management访问:http://127.0.0.1:15672/默认账号密码:guest\guest(这个账号只允许localhost访问)


用户管理

查看所有用户: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
如果是在远程服务器上安装的,这个时候就可以进行远程访问了。