使用专业的消息队列产品rabbitmq之centos7环境装配
我们在项目开发的时候都不可避免的会有异步化的问题,比较好的解决方案就是使用消息队列,可供选择的队列产品也有很多,比如轻量级的redis,
当然还有重量级的专业产品rabbitmq,rabbitmq好就好在是用erlang(二郎神)开发的,它那天生的OTP并行计算框架,轻而易举的进程间通讯,我都恨
不得将后端的内存计算框架全部换成erlang。。。开个玩笑,这篇我们具体来讲讲erlang开发的一个成品,叫做rabbitmq。。。
一:环境安装
这些开源性的产品没多少是建议用户部署在windows上的,不过rabbitmq除外,为了更加贴近实际的应用场景,我们这里还是部署在centos7上。
1. 安装erlang
刚才也说了,rabbitmq只不过是erlang开发的一个成品而已,所以我们首先一定要安装好erlang环境才可以。。。http://www.erlang.org/downloads
当然你也可以wget一下这个下载链接也没毛病。。。
wget http://10.65.255.231/IXCb7261d0152b8aa2ad1f25a55bf0e761f/download/otp_src_19.1.tar.gz
然后解压一下,修改一下文件夹叫做erlang,如图:
接下来我们要安装各种erlang需要的依赖库,包括gcc, kernel-devel,ncurses-devel等等,如下:
[root@localhost ~]# yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel unixODBC-devel
稍等片刻之后,我们就安装好了,接下来我们深入到erlang文件夹下,进行configure安装环境配置,--prefix=/usr/erlang 是说明将当前的安装放在
usr/erlang文件夹下。
[root@localhost erlang]# ./configure --prefix=/usr/erlang --without-javac
这里一定要看清楚了,我开启的Terminal已经是在erlang文件夹下面的哦。
*********************************************************************
********************** APPLICATIONS DISABLED **********************
*********************************************************************
jinterface : Java compiler disabled by user
*********************************************************************
*********************************************************************
********************** APPLICATIONS INFORMATION *******************
*********************************************************************
wx : wxWidgets not found, wx will NOT be usable
*********************************************************************
*********************************************************************
********************** DOCUMENTATION INFORMATION ******************
*********************************************************************
documentation :
fop is missing.
Using fakefop to generate placeholder PDF files.
*********************************************************************
[root@localhost erlang]#
ok,如果你安装顺利的话,就是上面这样的一个界面,这就说明安装通过了,接下来我们可以执行make命令进行编译。
[root@localhost erlang]# make
稍等片刻后,如果安装顺利的话,我们就可以执行make install 即可。
[root@localhost erlang]# make install
然后就可以看到,在/usr 文件夹下面就有一个编译好的erlang文件夹,不信你看。
到现在为止,erlang就已经安装好了,是不是有一种冲动加上好吊的样子呢??? 现在就拭目以待的启动吧~~~
[root@localhost bin]# ./erl
二:安装Rabbitmq环境
rabbitmq安装起来就非常简单了,因为在官网上不光提供了source模式的源代码,也提供了binary的二进制文件,这里为了方便,我们就下载
binary吧,网址是:http://www.rabbitmq.com/download.html
接下来我们把这个binary下载下来后,也放到/usr 文件夹下面,可以看到这个rabbitmq-server 就是rabbitmq的启动程序,如下图:
然后你可以兴致勃勃的启动,恭喜你,遇到erl command not found错误。。。
[root@localhost sbin]# ./rabbitmq-server
./rabbitmq-server: line 67: erl: command not found
[root@localhost sbin]#
那这个问题该怎么解决呢??? 其实很简单,我只需要配置下erlang的环境即可,为了方便,我也可以将rabbimq的环境变量一起配置了。。。
当然centos中环境变量文件就是 /etc/profile,不信你看哦。。。
#set erlang environment
export PATH=$PATH:/usr/erlang/bin
#set rabbitmq environment
export PATH=$PATH:/usr/rabbitmq/sbin
然后在terminal中执行以下命令 source /etc/profile 让配置在当前ternimal中生效,生效之后,就可以在terminal上执行erl就可以啦。。。
[root@localhost sbin]# ./rabbitmq-server
./rabbitmq-server: line 67: erl: command not found
[root@localhost sbin]# source /etc/profile
[root@localhost sbin]# erl
Erlang/OTP 19 [erts-8.1] [source] [64-bit] [async-threads:10] [hipe] [kernel-poll:false]
Eshell V8.1 (abort with ^G)
1>
同样现在也可以在terminal上直接执行rabbitmq-server 。。。 不过你一定要记住,这个source只在当前的terminal上有效,除非重启centos全局生效。
[root@localhost Desktop]# source /etc/profile
[root@localhost Desktop]# rabbitmq-server
RabbitMQ 3.6.5. Copyright (C) 2007-2016 Pivotal Software, Inc.
## ## Licensed under the MPL. See http://www.rabbitmq.com/
## ##
########## Logs: /usr/rabbitmq/var/log/rabbitmq/rabbit@localhost.log
###### ## /usr/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log
##########
Starting broker...
completed with 0 plugins.
三:开启web监控
rabbitmq最牛逼的一个地方就是自带一个高配的监控,所以必须将其启动,你只需要启动插件 rabbitmq_management 就可以了。。。。
[root@localhost Desktop]# rabbitmq-plugins enable rabbitmq_management
然后键入127.0.0.1:15672 就可以看到啦。。使用guest, guest 登陆,是不是好吊的样子撒!
好了,本篇就说到这里,希望对你有帮助~~~
- 8楼向晚
- 为什么不用docker?
- 7楼半生铭熙
- 讲讲集群的配置和管理呗
- Re: 一线码农
- @半生铭熙,后面会说的。
- 6楼吴瑞祥
- 好复杂啊..不是直接用一个命令就可以了吗..
- Re: 一线码农
- @吴瑞祥,一个命令?什么命令?
- 5楼编程笔记
- 正好用到,站位
- Re: 一线码农
- @编程笔记,恭喜恭喜
- 4楼~扎克伯格
- 1.请问有RabbitMQ部署到centos 7的实战应用吗?2.部署后您是如何给用户分配权限的吗?谢谢
- Re: 一线码农
- @IT民工-杰,1.有实战应用的, 2.给用户分配权限,可以通过在rabbitmq_management的Admin选项卡下做vhost 和user的权限分配操作。
- 3楼志在必得Shaun
- 可以顺带提提yum配置
- Re: 一线码农
- @志在必得Shaun,这个就像nuget,没啥好说的哈~
- 2楼allanzhong
- mark
- 1楼小强和他的朋友
- 为啥不选msmq呢
- Re: 一线码农
- @小强和他的朋友,这个已经是90年代的产品了。