上一篇文章我们聊到了rabbitmq的实现原理:RabbitMQ实现原理 这篇文章将会介绍在Redhat7.x或centos下如何部署rabbitmq,话不多说,我们开始。 1、下载安装包 部署前需要准备好Erlang和RabbitMQ两种安装包(注:两者有版本依赖关系),官网下载地址如下: erlang:https://www.erlang-solutions.com/resources/download.html rabbitmq:https://github.com/rabbitmq/rabbitmq-server/releases 查看版本依赖关系:https://www.rabbitmq.com/which-erlang.html 这里我们下载的是otp_src_23.3.4.tar.gz和rabbitmq-server-generic-unix-3.8.16.tar.xz版本
另外需要下载openssl安装包,rabbitmq需要依赖openssl相关库文件,建议下载版本较新的包: openssl:https://www.openssl.org/source/old/1.1.1/ 这里我们下载的是1.1.1g版本(注:版本不能过低,过低会导致rabbitmq服务启动和安装erlang包报错,因为低版本会导致不兼容的问题)
2,安装依赖项 yum -y install make gcc gcc-c++ python xmlto kernel-devel m4 ncurses-devel openssl-devel ncurses-devel
3,安装openssl包 上传至指定安装路径之后解压包进入包目录执行如下命令进行配置: ./config --prefix=/opt/ssl (注:这里的prefix是默认配置路径,下一步安装erlang需要用到此路径,可以自定义) 编译安装: make && make install 安装openssl完成!
3,安装erlang 下载完成之后将两者传至指定安装路径,解压后如下: 先安装erlang源码包,rabbitmq的启动和运行都要依赖于erlang包,进入到源码包使用如下命令进行配置: ./configure --with-ssl=/opt/ssl/ --prefix=/usr/local/erlang --without-javac (注:其中的prefix是自定义的安装路径,with-ssl是上一步安装openssl时指定的安装路径) 完成上一步之后在进行编译和安装: make && make install 完成上述步骤没问题后就可以校验erlang是否安装成功了,进入到bin目录执行: ./erl 如果能进入到erlang命令行则说明安装成功! 4,配置环境变量 这一步是配置erlang和rabbitmq的环境变量,执行:vim /etc/profile 将两者的安装路径配置在PATH中,保存退出执行:source /etc/profile
5,启动rabbitmq服务 这里的rabbitmq包并不需要像erlang包一样执行编译过程,它本质是一个部署包,解压之后即可启动,我们进入到sbin目录启动服务,如下: 启动mq服务执行:./rabbitmq-server 另开终端窗口,查看rabbitmq进程,如下: 停止mq服务执行:./rabbitmqctl stop 查看mq服务状态:./rabbitmqctl status
6,账号管理功能 mq服务启动后为了更加清楚的了解mq内部的消息情况,我们可以开启前台ui界面功能便于查看相关队列和消息,不停止mq的情况下另开终端窗口开启web管理界面功能,进入sbin目录执行如下命令: ./rabbitmq-plugins enable rabbitmq_management 执行完后,rabbitmq 会产生有一个网页端口号,默认为 15672,启动 rabbitmq 后,在浏览器访问主机IP+端口,如:http://127.0.0.1:15672/,会出现一个登陆界面,输入默认的 guest 账号试试,发现登陆不了(因为默认的guest用户只能用localhost连接):
这里我们可以在后台自创建账号进行登录,执行如下: ./rabbitmqctl add_user admin 123456 这里我们创建一个admin用户,密码是123456 ./rabbitmqctl set_user_tags admin administrator 设置此用户为超级管理员
前台创建交换器和队列需要在后台执行以下命令,否则创建会被拒绝: ./rabbitmqctl set_permissions -p / admin “." ".” ".*" (注:其中admin是用户名) 至此我们的rabbitmq安装完成了!
关于安装遇到的问题可以咨询qq:1035367602
|