CentOS7.2安装RabbitMQ笔记

谁说我不能喝 提交于 2020-01-10 12:26:28

身为.NET程序员,用着宇宙级IDE,干什么事都变得越来越懒了,Windows操作系统在手,能通过桌面点点点的方式何必找其他罪受呢。。于是RabbitMQ自然而然也就跑在Windows上了,说实话Windows配置RabbitMQ太恶心了,尤其对于手贱的人,总想着装了卸卸了装,慢慢的各种问题就出来了,不从装系统解决起来备受煎熬。。当然服务器上肯定不这么干,但自己电脑肯定不知不觉的瞎折腾,然后就比如安装的时候报这种问题:

重装系统肯定是不可能的- -征战这么久的电脑,桌面上的东西都懒得整理。。

Docker说实话真是个好东西,RabbitMQ镜像一拉分分钟就玩起来了,但Docker毕竟也有局限性,baidu查一下数据库不适合容器化大致能读到点弊端,队列同理。

最近又回过头来把RabbitMQ搞到CentOS上也是为了节约成本提升性能,RabbitMQ配置里存在一个hipe_compile的属性,它的描述如下:

醒目的20-50%性能提升不是一点点的诱惑,然而蛋疼的是默认不开启,而且很不友好的强调了下。。不支持Windows平台。。所以搞吧。。

安装erlang

先下载最新的erlang安装包,可以上官网下载页面下载后扔到CentOS服务器上也可以服务器本地通过命令行下载 wget http://erlang.org/download/otp_src_19.3.tar.gz(当然使用wget,ifconfig命令需要先安装插件yum install wget ,yum install net-tools)

下载完成后解压:tar -xvzf otp_src_19.3.tar.gz

erlang在安装前需要先安装下它的依赖工具:

yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel unixODBC-devel

然后进入解压文件对erlang进行安装环境的配置(为了以后升级版本,此处就继续使用加压文件的名字了,至少我看得懂。。。。)

./configure --prefix=/usr/erlang --without-javac 

然后进行编译make

然后安装 make install

然后就可以验证一下erlang是否安装成功了

  

接下来需要配置一下环境变量,把Erlang配置到/etc/profile文件中并通过source /etc/profile设置生效

安装RabbitMQ

下载RabbitMQ最新安装包,同样可以页面下载

也可以通过命令行下载:wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.8/rabbitmq-server-3.6.8-1.el7.noarch.rpm

下载完成后依旧照着文档走先执行下:

rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc

然后执行:

yum install rabbitmq-server-3.6.8-1.el7.noarch.rpm

这时候就是看点的过程了- -如果点正,系统镜像工具比较全的。。直接就安装后了。。点背的话后安装失败(对于我这Linux菜鸟就是时刻点背着。。):

 

点正中途输个Y就完事了

面对点背的情况,看了下错误信息,既然可以忽略那就忽略吧- -

rpm -i --nodeps rabbitmq-server-3.6.8-1.el7.noarch.rpm

这样也算安装完成了。。

配置RabbitMQ

RabbitMQ的配置文档还是写的比较详细的:通过配置文件搞的话也比较简单,简单理解就是创建俩文件rabbitmq-env.conf,rabbitmq.config然后都扔到/etc/rabbitmq目录下即可

rabbitmq-env.conf中可以配置下消息存储的位置,日志存储的位置这些比较常用的设置,比如

RABBITMQ_MNESIA_BASE=/usr/local/rabbitmq-server/data
RABBITMQ_LOG_BASE=/usr/local/rabbitmq-server/log

这里需要注意的就是既然不使用默认目录了,那目标目录是需要权限的,于是可以执行命令给rabbitmq-server授权:

chmod -R 777 /usr/local/rabbitmq-server

对于rabbitmq.config配置文件的样本可以在/usr/share/doc/rabbitmq-server/ 或者 /usr/share/doc/rabbitmq-server-3.6.8/里找到,就是一个rabbitmq.config.example的文件,去掉.example即可使用,RabbitMQ平时使用默认配置即可,此处修改下hipe_compile的属性为true就算完事了!

去掉%%注释,去掉屁股上的,即可。

然后保存安装下RabbitMQ服务,

正如配置所说- -启动慢。但跑起来的话性能很好!

启动RabbitMQ服务可以通过命令:rabbitmq-server start

添加rabbitmq到启动项可以通过命令:chkconfig rabbitmq-server on

还有就是开启管理界面可以通过命令:rabbitmq-plugins enable rabbitmq_management 

注意:

对于将RabbitMQ添加到启动项实际上就是安装RabbitMQ时,会在/lib/systemd/system目录下自动创建一个 rabbitmq-server.service 的配置文件用于系统开启时执行(Centos 系统服务脚本目录有系统(system)和用户(user)两种,如需要开机没有登陆情况下就能运行的程序,存在系统服务(system)里,即:/lib/systemd/system;反之,用户登录后才能运行的程序,存在用户(user)里/lib/systemd/system/ ,服务以.service结尾。)如果这里没看到 rabbitmq-server.service文件则需要自己手动创建了,文件需要分配754权限即 chmod 745 rabbitmq-server.service,然后就可以测试执行以下了 systemctl start rabbitmq-server.service 然而这时候点背还是会报错的。。

不多好在错误信息比较明显。。

由于Erlang是自己编译安装的,这时候通过配置环境变量还是找不到erl的执行命令,简单的方式就是创建快捷方式:

ln -s /usr/local/otp_src_19.3/bin/erl /usr/bin

 这样就可以正常安装RabbitMQ服务了。

chmod 745 rabbitmq-server.service配置中编写的内容同样要使用执行文件的实际位置的方式,简单的配置比如:

启动服务:systemctl start rabbitmq-server.service

设置开机启动:systemctl enable rabbitmq-server.service

停止开机启动:systemctl disable rabbitmq-server.service

重新启动服务:systemctl restart rabbitmq-server.service

查看服务当前状态:systemctl status rabbitmq-server.service

查看所有已启动服务:systemctl list-units --type=service

RabbitMQ集群配置

集群配置需要注意的就是同步.erlang.cookie文件内容,这个文件所在的位置文档里说是在/var/lib/rabbitmq/.erlang.cookie 或者$HOME/.erlang.cookie. 我一般就是既然RabbimtMQ安装成功了随便瞎个命令比如在RabbitMQ关闭的状态下在关一次:rabbitmqctl stop然后就报错了。。报错的内容里醒目的写着.erlang.cookie的位置。。windows同理。。(之所以说windows同理是因为我们的集群一台windows2012一台sentos7.2,鹅妹子嘤)

对于集群中erlang的版本最好一致,不能一致的话至少保证主版本号一致,而且祈祷高版本兼容低版本吧!(通常是没问题的)

对于RabbitMQ貌似对版本要求比较严格,修正号不一致都不成功。。

还好删除是比较方便的。。。

 

统一版本后就能连了,蛋疼。。

不关闭防火墙还要记得开放端口,通常4369,5672,15672,25672什么的是需要开放的:

firewall-cmd --add-port=4369/tcp --permanent


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!