一、RabbitMQ简单介绍 RabbitMQ就是当前最主流的消息中间件之一。
RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。 在目前分布式的大环境下,成为非常常用的消息队列,以下详细说明怎么在centos7 上安装部署rabbitmq,并列举简单的维护,方便运维同学能更好的维护rabbitmq的正常运行。由于一般生产环境,不管是erlang还是 rabbitmq都不能随便进行版本升级,每次升级都是要谨慎的,所以这里推荐都使用源码安装,这样就固定了版本,不会出现通过yum安装的话,不小心升级了版本导致服务故障等的问题。
当然yum安装会更简单,这里就不做介绍,有兴趣的参考官方文档即可。
二、Centos7下安装rabbitmq
rabbitmq是erlang语言编写的,安装rabbitmq之前,需要先安装erlang,这里用erlang的源码进行安装,erlang安装包官网下载地址:http://erlang.org/download/

wget http://erlang.org/download/otp_src_21.1.tar.gz
tar -zxvf otp_src_21.1.tar.gzcd otp_src_21.1

这里要新建一个erlang文件夹,因为erlang编译安装默认是装在/usr/local下的bin和lib中,这里我们将他统一装到/usr/local/erlang中,方便查找和使用。

mkdir -p /usr/local/erlang 

在编译之前,必须安装以下依赖包

yum install -y make gcc gcc-c++ m4 openssl openssl-devel ncurses-devel unixODBC unixODBC-devel java java-devel 
./configure --prefix=/usr/local/erlang    

erlang的编译需要用到java环境,如果不装,会报错如下。
以下的两个:APPLICATIONS INFORMATION,DOCUMENTATION INFORMATION是正常的,不影响正常编译。
然后,直接执行make && makeinstall
进行编译安装

  make && make install   

安装后,在/usr/local/erlang中就会出现如下:
然后将/usr/local/erlang/bin这个文件夹加入到环境变量中,加载以下即可直接使用。

  vim /etc/profile  

添加如下内容

  ###############
  PATH=$PATH:/usr/local/erlang/bin
  ######################################## 
  source /etc/profile   

到此,既安装完成,直接输入erl,得到如下图得安装成功
OK,安装完erlang后,下面安装rabbitmq,安装之前,需要去官网查看一下rabbitmq版本对erlang版本的一个支持情况,官网地址:http://www.rabbitmq.com/which-erlang.html 这里,我们安装的erlang是最新的21版本,所以,rabbitmq也要安装最新的3.7.7,3.7.8。然后在官网上,直接下载该版本的安装包,为了方便安装,最好直接使用编译好的二进制文件包,即开即用,不用进行复杂的yum配置等。具体可以参考官方文档:http://www.rabbitmq.com/install-generic-unix.html

下载源码包

 wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.8/rabbitmq-server-generic-unix-3.7.8.tar.xz

解压

 tar -xvf rabbitmq-server-generic-unix-3.7.8.tar.xz -C /usr/local/

添加环境变量

 vim /etc/profile

------ 添加如下内容 -----

 PATH=$PATH:/usr/local/rabbitmq_server-3.7.8/sbin  

重载一下环境变量

 source /etc/profile

添加web管理插件

rabbitmq-plugins enable rabbitmq_management
默认rabbitmq是没有配置文件的,需要去官方github上,复制一个配置文件模版过来,最新的3.7.0以上的版本可以使用新的key-value形式的配置文件rabbitmq.conf,和原来erlang格式的advanced.config相结合,解决一下key-value形式不好定义的配置。
github地址:https://github.com/rabbitmq/rabbitmq-server/tree/master/docs 由于我这里安装的是最新的3.7.8。所以就使用新的配置文件,将配置文件复制到 /usr/local/rabbitmq_server-3.7.8/etc/rabbitmq/ 下。
如: ok,然后就可以启动rabbitmq服务了,其实没有配置文件也是可以启动服务的。
# 后台启动rabbitmq服务
rabbitmq-server -detached
上面,启用了rabbitmq的管理插件,会有一个web管理界面,默认监听端口15672

创建新用户

rabbitmqctl add_user guest guest
rabbitmqctl set_user_tags guest administrator
rabbitmqctl set_permissions -p / guest “." ".” “.*”

守护线程,确保正常运行

再给rabbitmq_server增加个

vi  /usr/local/rabbitmq_daemon.sh

------ 添加如下内容 -----

#!/bin/bash
mqpath=/usr/local/rabbitmq_server-3.7.8

pid=$(ps -ef | grep  rabbitmq | grep -v grep)
if [ ! -n "$pid" ]
then
 echo $(date +"%Y-%m-%d %H:%M:%S") $mqpath ' is not runing'
 export PATH=$PATH:/usr/local/erlang/bin
 export HOME=/usr/local/rabbitmq_server-3.7.8/
 $mqpath/sbin/./rabbitmq-server -detached
else
  echo $(date +"%Y-%m-%d %H:%M:%S") $mqpath 'is running ' $pid
fi
pid2=$(ps -ef | grep rabbitmq | grep -v grep)
if [ ! -n "$pid2" ]
then
  echo $(date +"%Y-%m-%d %H:%M:%S") ' rabbitmq reload fail '
else
  echo $(date +"%Y-%m-%d %H:%M:%S") ' rabbitmq reload success '
fi

------ 赋予脚本执行权限 -----

chmod 777 /usr/local/rabbitmq_daemon.sh

------ 增加定时任务 1分钟执行一次 -----

*/1 * * * * bash /usr/local/rabbitmq_daemon.sh > /usr/local/rabbitmq_daemon.log

日志的配置 ,清除配置

参考博文
https://blog.csdn.net/ximaiyao1984/article/details/132257989

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐