RabbitMQ是流行的开源消息队列系统,是AMQP(Advanced Message Queuing Protocol高级消息队列协议)的标准实现,用erlang语言开发。RabbitMQ据说具有良好的性能和时效性,同时还能够非常好的支持集群和负载部署,非常适合在较大规模的分布式系统中使用,具体特性还在验证中,待检验。由于项目需要,安装并配置了RabbitMQ,服务器操作系统是CentOS7,服务器是阿里云主机。具体步骤如下:

  安装依赖文件:

  yum install gcc glibc-devel make ncurses-devel openssl-devel xmlto

  1.Erlang安装配置

  下载安装包,地址http://www.erlang.org/downloads,我选择的是otp_src_18.3.tar.gz。

  然后解压文件:

[root@iZ25e3bt9a6Z rabbitmq]# tar -xzvf otp_src_18..tar.gz
[root@iZ25e3bt9a6Z rabbitmq]# cd otp_src_18./

  配置安装路径编译代码:

[root@iZ25e3bt9a6Z otp_src_18.3]# ./configure --prefix=/opt/erlang

  执行编译结果:

[root@iZ25e3bt9a6Z otp_src_18.3]# make && make install

  完成后进入/opt/erlang查看执行结果

[root@iZ25e3bt9a6Z rabbitmq]# cd /opt/erlang/
[root@iZ25e3bt9a6Z erlang]# erl
Erlang/OTP [erts-7.3] [source] [-bit] [smp::] [async-threads:] [hipe] [kernel-poll:false] Eshell V7. (abort with ^G)
>

  当出现以上信息时表示安装完成。然后输入’halt().’退出即可。

  然后在配置Erlang环境变量,vi /etc/profile文件,增加下面的环境变量:

#set erlang environment
export PATH=$PATH:/opt/erlang/bin

  source  /etc/profile使得文件生效

  在安装Erlang过程中,可能会遇到以下问题,一般都是因为系统中缺少相应的包引起的,缺少什么包直接yum安装即可。

  2.下载安装RabbitMq

[root@iZ25e3bt9a6Z rabbitmq]# weget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.1/rabbitmq-server-generic-unix-3.6.1.tar.xz

  解压文件

[root@iZ25e3bt9a6Z rabbitmq]# xz -d rabbitmq-server-generic-unix-3.6..tar.xz
[root@iZ25e3bt9a6Z rabbitmq]# tar -xvf rabbitmq-server-generic-unix-3.6..tar  -C /opt

  解压后进入文件夹/opt发现多了个文件夹rabbitmq-server-generic-unix-3.6.1 ,重命名为rabbitmq以便记忆。

  然后在配置rabbitmq环境变量,vi /etc/profile文件,增加下面的环境变量:

#set rabbitmq environment
export PATH=$PATH:/opt/rabbitmq/sbin

  source  /etc/profile使得文件生效

  3.RabbitMQ服务启动关闭

  以上就已经完成了RabbitMq的安装,怎么启动服务呢?

  启动服务:

[root@iZ25e3bt9a6Z rabbitmq]# cd sbin/
[root@iZ25e3bt9a6Z sbin]# ./rabbitmq-server -detached

  查看服务状态:

[root@iZ25e3bt9a6Z sbin]# ./rabbitmqctl status
Status of node rabbit@iZ25e3bt9a6Z ...
[{pid,},
{running_applications,
[{rabbitmq_management,"RabbitMQ Management Console","3.6.1"},
{rabbitmq_management_agent,"RabbitMQ Management Agent","3.6.1"},
{rabbitmq_web_dispatch,"RabbitMQ Web Dispatcher","3.6.1"},
{webmachine,"webmachine","1.10.3"},
{amqp_client,"RabbitMQ AMQP Client","3.6.1"},
{mochiweb,"MochiMedia Web Server","2.13.0"},
{syntax_tools,"Syntax tools","1.7"},
{ssl,"Erlang/OTP SSL application","7.3"},
{public_key,"Public key infrastructure","1.1.1"},
{asn1,"The Erlang ASN1 compiler version 4.0.2","4.0.2"},
{crypto,"CRYPTO","3.6.3"},
{compiler,"ERTS CXC 138 10","6.0.3"},
{inets,"INETS CXC 138 49","6.2"},
{rabbit,"RabbitMQ","3.6.1"},
{mnesia,"MNESIA CXC 138 12","4.13.3"},
{rabbit_common,[],"3.6.1"},
{xmerl,"XML parser","1.3.10"},
{os_mon,"CPO CXC 138 46","2.4"},
{ranch,"Socket acceptor pool for TCP protocols.","1.2.1"},
{sasl,"SASL CXC 138 11","2.7"},
{stdlib,"ERTS CXC 138 10","2.8"},
{kernel,"ERTS CXC 138 10","4.2"}]},
{os,{unix,linux}},
{erlang_version,
"Erlang/OTP 18 [erts-7.3] [source] [64-bit] [smp:8:8] [async-threads:64] [hipe] [kernel-poll:true]\n"},
{memory,
[{total,},
{connection_readers,},
{connection_writers,},
{connection_channels,},
{connection_other,},
{queue_procs,},
{queue_slave_procs,},
{plugins,},
{other_proc,},
{mnesia,},
{mgmt_db,},
{msg_index,},
{other_ets,},
{binary,},
{code,},
{atom,},
{other_system,}]},
{alarms,[]},
{listeners,[{clustering,,"::"},{amqp,,"::"}]},
{vm_memory_high_watermark,0.4},
{vm_memory_limit,},
{disk_free_limit,},
{disk_free,},
{file_descriptors,
[{total_limit,},
{total_used,},
{sockets_limit,},
{sockets_used,}]},
{processes,[{limit,},{used,}]},
{run_queue,},
{uptime,},
{kernel,{net_ticktime,}}]

  关闭服务:

[root@iZ25e3bt9a6Z sbin]# ./rabbitmqctl stop
Stopping and halting node rabbit@iZ25e3bt9a6Z ...

  4. 配置网页插件

  首先创建目录,否则可能报错:

mkdir /etc/rabbitmq 

  然后启用插件:

./rabbitmq-plugins enable rabbitmq_management 

  配置linux 端口 15672 网页管理  5672 AMQP端口
  然后访问http://localhost:15672即可

  默认用户guest 密码guest

  

  5. 远程访问配置

  默认网页是不允许访问的,需要增加一个用户修改一下权限,代码如下:

  添加用户:rabbitmqctl add_user hxb hxb

  添加权限:rabbitmqctl set_permissions -p "/" hxb ".*" ".*" ".*"

修改用户角色rabbitmqctl set_user_tags hxb administrator

  然后就可以远程访问了,然后可直接配置用户权限等信息。

  

  6. rabbitmq常用命令

  add_user        <UserName> <Password>

  delete_user     <UserName>

  change_password <UserName> <NewPassword>

  list_users

  add_vhost    <VHostPath>

  delete_vhost <VHostPath>

  list_vhostsset_permissions   [-p <VHostPath>] <UserName> <Regexp> <Regexp> <Regexp>

  clear_permissions [-p <VHostPath>] <UserName>

  list_permissions  [-p <VHostPath>]

  list_user_permissions <UserName>

  list_queues    [-p <VHostPath>] [<QueueInfoItem> ...]

  list_exchanges [-p <VHostPath>] [<ExchangeInfoItem> ...]

  list_bindings  [-p <VHostPath>]

  list_connections [<ConnectionInfoItem> ...]

RabbitMQ服务安装配置的更多相关文章

  1. CentOS7下RabbitMQ服务安装配置

    参考文档: CentOS7下RabbitMQ服务安装配置 http://www.linuxidc.com/Linux/2016-03/129557.htm 在linux下安装配置rabbitMQ详细教 ...

  2. Erlang&RabbitMQ服务安装配置

    RabbitMQ是流行的开源消息队列系统,是AMQP(Advanced Message Queuing Protocol高级消息队列协议)的标准实现,用erlang语言开发.RabbitMQ据说具有良 ...

  3. CentOS7下RabbitMQ服务安装配置胜多负少

    RabbitMQ是流行的开源消息队列系统,是AMQP(Advanced Message Queuing Protocol高级消息队列协议)的标准实现,用erlang语言开发.RabbitMQ据说具有良 ...

  4. CentOS7下RabbitMQ服务安装配置 (亲测有效)

    erlang 21.3 rabbitmq-server 3.7.14 下载地址 链接: https://pan.baidu.com/s/1g_T1Q_6zpyO3AepS0ZPgYQ 提取码: abq ...

  5. RabbitMQ的使用(一)- RabbitMQ服务安装

    RabbitMQ的使用(一)- RabbitMQ服务安装 作者:markjiang7m2 原文地址:https://www.cnblogs.com/markjiang7m2/p/12769627.ht ...

  6. Asterisk服务安装配置和启动

    Asterisk服务安装配置和启动 2014年11月4日 11:36 注意: 更新源的重要性 源的地址: http://fffo.blog.163.com/blog/static/2119130682 ...

  7. ubuntu14.04 server ftp 服务安装配置详解

    ubuntu14.04 server ftp 服务安装配置详解 cheungmine 2016-01-27 http://wiki.ubuntu.com.cn/Vsftpd 0 安装好vsftpd服务 ...

  8. CentOS 6.8 ftp服务安装配置 基于本地用户和虚拟用户

    CentOS 6.8 ftp服务安装配置 基于本地用户和虚拟用户 一.安装ftp服务 1.检查是否已经安装 # rpm -qa | grep ftp ftp-0.17-54.el6.x86_64 vs ...

  9. Linux下的python3,virtualenv,Mysql、nginx、redis等常用服务安装配置

    Linux下的python3,virtualenv,Mysql.nginx.redis等常用服务安装配置   学了前面的Linux基础,想必童鞋们是不是更感兴趣了?接下来就学习常用服务部署吧! 安装环 ...

随机推荐

  1. SSL介绍与Java实例

    有关SSL的原理和介绍在网上已经有不少,对于Java下使用keytool生成证书,配置SSL通信的教程也非常多.但如果我们不能够亲自动手做一个SSL Sever和SSL Client,可能就永远也不能 ...

  2. NoSQL

    Not Only Sql,弱一致性模型,非关系型.分布式.支持水平扩展的数据库设计模式,区别于传统关系型数据库严格的事务一致性和范式约束.分布式缓存是NoSQL一种实现形式. 参考:

  3. 背水一战 Windows 10 (20) - 绑定: DataContextChanged, UpdateSourceTrigger, 对绑定的数据做自定义转换

    [源码下载] 背水一战 Windows 10 (20) - 绑定: DataContextChanged, UpdateSourceTrigger, 对绑定的数据做自定义转换 作者:webabcd 介 ...

  4. Visual Studio 2015在.NET Core RC2项目中的一个错误。

    更新了.NET Core RC2 之后,VS的Web Tools更新为“Preview 1”了. 这个版本有一个问题,害我折腾了一个下午. 就是在项目界面的“依赖项 - NPM”上面错误地显示了不必要 ...

  5. svn中cleanup作用

    我们开发项目的时候,用版本控制软件svn提交项目时候难免会遇到cleanup,那么这个提示是怎么产生的呢?它有什么作用呢? 产生原因:SVN 本地更新时,由于一些操作中断更新,如磁盘空间不够,用户取消 ...

  6. Gym 100703I---Endeavor for perfection(尺取)

    题目链接 http://codeforces.com/problemset/gymProblem/100703/I Description standard input/outputStatement ...

  7. Logging configuration

    The Play logger is built on Log4j. Since most Java libraries use Log4j or a wrapper able to use Log4 ...

  8. JavaScript判断变量值简单的方法

    今天在看一个动态web表单设计器的时候发现项目中的 一个写法 function sum_total(v){ if (!v) { v= 0; } } !v  这是什么写法?不过可以肯定的是,这是一种判断 ...

  9. $(function) ready onload 等区别

    新手接触javascript.jquery的时候不可避免的要接触题目所标识的相关内容,反复看过几次一到用的时候总是不踏实,写文以记之. 符号“$”是jquery对象(个人这样理解,拥有函数的用法).接 ...

  10. iOS BUG: Unbalanced calls to begin/end appearance transitions for <XXXViewController: 0x7fcea3730650>.

    自定义TabBarController Push下一级Controller时 会报这样的错误:Unbalanced calls to begin/end appearance transitions ...