我们在项目开发的时候都不可避免的会有异步化的问题,比较好的解决方案就是使用消息队列,可供选择的队列产品也有很多,比如轻量级的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 登陆,是不是好吊的样子撒!

好了,本篇就说到这里,希望对你有帮助~~~

使用专业的消息队列产品rabbitmq之centos7环境安装的更多相关文章

  1. RabbitMQ消息队列(三)-Centos7下安装RabbitMQ3.6.1

    如果你看过前两章对RabbitMQ已经有了一定了解,现在已经摩拳擦掌,来吧动手吧! 用什么系统 本文使用的是Centos7,为了保证对linux不太熟悉的伙伴也能轻松上手(避免折在安装的路上),下面是 ...

  2. [转]centos7环境安装rabbitMQ

    使用专业的消息队列产品rabbitmq之centos7环境安装 http://www.cnblogs.com/huangxincheng/p/6006569.html CentOS7上安装Rabbit ...

  3. centos7环境安装rabbitMQ

    使用专业的消息队列产品rabbitmq之centos7环境安装 http://www.cnblogs.com/huangxincheng/p/6006569.html [源码安装,适用GNOME + ...

  4. 消息队列&Celery&RabbitMQ&zeromq

    一.消息队列 什么是消息队列? “消息队列”是在消息的传输过程中保存消息的容器. “消息”是在两台计算机间传送的数据单位.消息可以非常简单,例如只包含文本字符串:也可以更复杂,可能包含嵌入对象. 消息 ...

  5. 消息队列之 RabbitMQ

    https://www.jianshu.com/p/79ca08116d57 关于消息队列,从前年开始断断续续看了些资料,想写很久了,但一直没腾出空,近来分别碰到几个朋友聊这块的技术选型,是时候把这块 ...

  6. RabbitMQ,Apache的ActiveMQ,阿里RocketMQ,Kafka,ZeroMQ,MetaMQ,Redis也可实现消息队列,RabbitMQ的应用场景以及基本原理介绍,RabbitMQ基础知识详解,RabbitMQ布曙

    消息队列及常见消息队列介绍 2017-10-10 09:35操作系统/客户端/人脸识别 一.消息队列(MQ)概述 消息队列(Message Queue),是分布式系统中重要的组件,其通用的使用场景可以 ...

  7. 转 消息队列之 RabbitMQ

    转 https://www.jianshu.com/p/79ca08116d57 消息队列之 RabbitMQ 预流 2017.05.06 16:03* 字数 4884 阅读 80990评论 18喜欢 ...

  8. 消息队列,RabbitMQ、Kafka、RocketMQ

    目录 1.消息列队概述 1.1消息队列MQ 1.2AMQP和JMS 1.2.1AMQP 1.2.2JMS 1.2.3AMOP 与 JMS 区别 1.3消息队列产品 1.3.1 Kafka 1.3.2 ...

  9. 消息队列之 RabbitMQ【验证通过】

    消息队列之 RabbitMQ 预流 关注  22.9 2017.05.06 16:03* 字数 4884 阅读 284691评论 41喜欢 618赞赏 2 关于消息队列,从前年开始断断续续看了些资料, ...

随机推荐

  1. 快速Android开发系列通信篇之EventBus

    先吐槽一下博客园的MarkDown编辑器,推出的时候还很高兴博客园支持MarkDown了,试用了下发现支持不完善就没用了,这次这篇是在其他编辑器下写的,复制过来后发现..太烂了.怎么着作为一个技术博客 ...

  2. 警告: [unchecked] 对作为原始类型IScheme的成员的write(TProt ocol,T)的调用未经过检查

    jdk 从8 改成了7 就好了! 或者, 修改源码, 每个响应的地方加上 surppressingWarnings xxx , 或者使用 请使用 -Xlint:unchecked 重新编译. 参照 h ...

  3. WCF学习之旅—基于Fault Contract 的异常处理(十八)

       WCF学习之旅—WCF中传统的异常处理(十六) WCF学习之旅—基于ServiceDebug的异常处理(十七) 三.基于Fault Contract 的异常处理 第二个示例是通过定制Servic ...

  4. 计算机程序的思维逻辑 (51) - 剖析EnumSet

    上节介绍了EnumMap,本节介绍同样针对枚举类型的Set接口的实现类EnumSet.与EnumMap类似,之所以会有一个专门的针对枚举类型的实现类,主要是因为它可以非常高效的实现Set接口. 之前介 ...

  5. egret3D与2D混合开发,画布尺寸不一致的问题

    egret3d的GUI目前还没有,在做3d游戏的时候没有UI可用,只能使用egret2d的EUI组件库,egret3d与egret2d混合开发,canvas3d的大小与位置与canvas2d并没有重合 ...

  6. Node基础篇(概要)

    Node简介 客户端的JavaScript是怎样的 什么是 JavaScript? 脚本语言 运行在浏览器中 一般用来做客户端页面的交互(Interactive) JavaScript 的运行环境? ...

  7. Rafy 框架 - 幽灵插件(假删除)

      Rafy 框架又添新成员:幽灵插件.本文将解释该插件的场景.使用方法.原理.   场景 在开发各类数据库应用系统时,往往需要在删除数据时不是真正地删除数据,而只是把数据标识为'已删除'状态.这些数 ...

  8. Qt 拷贝文件目录

    bool copyDir(const QString &source, const QString &destination, bool override) { QDir direct ...

  9. WPF入门:XAML

    XAML是WPF技术中专门用于设计UI的语言 XAML优点最大的优点是将UI与逻辑代码剥离 创建第一个WPF应用程序 VS默认生成的WPF项目解决方案 Properties:里面主要包含了程序用到的一 ...

  10. MVC5+EF6+AutoMapper+Bootstrap打造在线博客(1.1)

    DAL层的三个Model类: 字典表:CFDict 用户表:CFUser 用户爱好表:CFUserHobby(关联cfuser表和cfdict表) CFUser表和CFUserHobby表是一对多关系 ...