背景
最近公司一直在做将老的消息队列方式迁移到RabbitMQ上,正好借此机会学习研究下RabbitMQ是一种什么样的消息队列,都有那些优势,通过理解自己整理总结下,从最开始的安装开始整理。
使用版本
Erlang:otp_src_22.0.tar.gz
RabbitMQ:rabbitmq-server-generic-unix-3.7.15.tar.xz
安装依赖库
这些库都是需要root用户安装,如果已安装忽略此步
- ncurses-devel
- openssl-devel
- unixODBC-devel
- kernel-devel
- m4
使用的是当前最新版本,在编译是会发现make库需要4.0以上版本才能支持,如果没有则进行安装,不是最新版本需要升级。
配置安装Erlang
1. 从官网上下载源码包otp_src_22.0.tar.gz
2. 解压缩
使用tar命令进行解压缩。
tar -xvf otp_src_22.0.tar.gz
3. 重新配置安装路径
./configure --prefix=/user/erlang --without-javac
4. 编译安装
make && make install
5. 配置环境变量
安装完成后需要配置环境变量,RabbitMq依赖erlang。
vi .bash_profile
export PATH=$PATH:/user/erlang/bin
配置安装RabbitMq
1. 下载
从官网下载rabbitmq-server-generic-unix-3.7.15.tar.xz
2. 解压缩
xz -d rabbitmq-server-generic-unix-3.7.15.tar.xz
tar -xvf rabbitmq-server-generic-unix-3.7.15.tar
3. 移动位置
解压后的文件可以直接使用,或者移动到自己指定的目录中。
// 由于安装的是install目录,所以目录层级是这样的,根据各自需求指定即可
mv rabbitmq_server-3.7.15/ ../../user/
4. 配置
4.1 配置rabbitmq-env.conf
进入到安装好的Rabbitmq目录下新建环境变量文件并进行配置。
cd /user/rabbitmq_server-3.7.15/etc/rabbitmq
touch rabbitmq-env.conf
vi rabbitmq-env.conf
//节点名称
NODENAME=rabbit
//数据存储路径
MNESIA_BASE=/app/rabbitmq_server-3.7.15/data
4.2 配置rabbitmq.conf
与rabbitmq-env.conf,相同路径下。
touch rabbitmq.conf
vi rabbitmq.conf
//监听端口
listeners.tcp.default = 5672
//日志级别
log.file.level = info
//日志名称
log.file = rabbit.log
//日志路径
log.dir = /user/rabbitmq_server-3.7.15/nohuplogs
//日志切割,晚上0点进行切割
log.file.rotation.date = $D0
//默认虚拟机路径
default_vhost=/
//默认用户
default_user = guest
//默认密码
default_pass = guest
//默认用户级别
default_user_tags.administrator = true
//默认权限
default_permissions.configure = .*
default_permissions.read = .*
default_permissions.write = .*
//放开只能localhost访问
loopback_users = none
以上是添加的配置信息,当然还有其他配置,这里只是自己搭建时简单的配置项,更多配置项可以参考官网进行查看。
添加管理端插件
RabbitMQ提供了cli的方式进行操作,添加插件用这个命令即可,进入到sbin目录下然后执行命令
cd /user/rabbitmq_server-3.7.15/sbin
./rabbitmq-plugins enable rabbitmq_management
执行成功后显示:
启动RabbitMQ
//启动
rabbitmq-server
//后台启动
rabbitmq-server -detached
//停应用,但是进程还在
rabbitmqctl stop_app
//启应用
rabbitmqctl start_app
以上是整个RabbitMQ的安装过程,再此记录下方便以后学习,也方便需要的朋友查看。