Rabbitmq安装指南
来源:互联网 发布:复杂网络研究什么 编辑:程序博客网 时间:2024/05/29 16:44
MQ在互联网时代已经不是什么新鲜技术,传统MQ主要在应用内部实现,到互联网时代已经多如牛毛,RabbitMQ、ActiveMQ、zeroMQ、kafka,每个技术都有不同的业务场景,技术选型需要各自的业务需求。.
比较文章参考:http://blog.csdn.net/linsongbin1/article/details/47781187
1 介绍
RabbitMQ(http://www.rabbitmq.com) 是由 LShift 提供的一个Advanced Message Queuing Protocol (AMQP) 的开源实现,由以高性能、健壮以及可伸缩性出名的 Erlang(http://www.erlang.org)写成,他遵循Mozilla Public License开源协议。
2 系统要求
1、 Linux 2.6.18版本以上,使用内存大于4G
2、 gcc 版本 4.1.2
3 Erlang安装
例子以otp_src_17.0.tar.gz版本方式进行安装,脚本中的环境变量ERL_HOME使用/opt/erlang路径请根据实际情况定义。
将安装包放到任意目录下执行:
tar-zxvf otp_src_17.0.tar.gzcd otp_src_17.0./configure --prefix=/opt/erlangmakemake install
./configure --prefix=/opt/erlang --enable-smp-support --enable-threads --enable-sctp --enable-kernel-poll --enable-hipe --with-ssl
上述参数说明:
--prefix 指定安装目录--enable-smp-support启用对称多处理支持(Symmetric Multi-Processing对称多处理结构的简称)--enable-threads启用异步线程支持--enable-sctp启用流控制协议支持(Stream Control Transmission Protocol,流控制传输协议)--enable-kernel-poll启用Linux内核poll--enable-hipe启用高性能Erlang(High Performance Erlang)参考资料:http://www.cnblogs.com/me-sa/archive/2012/10/09/erlang_hipe.html--with-ssl使用SSL包
vim/etc/profileexport ERL_HOME=/opt/erlang/binexport PATH=$PATH:$ERL_HOMEsource /etc/profile
错误:
configure: error: No curses library functions foundconfigure: error: /bin/sh '/usr/local/xuguang/RabbitMq/erlang/otp_src_R15B01/erts/configure' failed for ertsRootCause:缺少ncurses安装包Fix:yum -y install ncurses-devel
测试
在控制台输入erl显示如下:
[root@APP-NO4 opt]# erl
Erlang R15B01 (erts-5.9.1) [source] [smp:2:2] [async-threads:0][hipe] [kernel-poll:false]
Eshell V5.9.1 (abort with ^G)
1>
表示安装正确
4 RabbitMQ安装(简单安装)
例子以rabbitmq-server-generic-unix-3.2.4.tar.gz版本进行按照。
将安装包放到任意目录下执行:
tar–zxvf rabbitmq-server-generic-unix-3.2.4.tar.gzcd rabbitmq_server-3.2.4./rabbitmq-plugins enable rabbitmq_management./rabbitmq-server -detached
rpm包安装
rpm --import http://www.rabbitmq.com/rabbitmq-signing-key-public.asc yum install rabbitmq-server-3.6.5-1.noarch.rpm(注:要下载下来)或 rpm -ivh --nodeps rabbitmq-server-3.6.5-1.noarch.rpm
rpm包安装 /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.5/sbin
-rwxr-xr-x 1 root root 1480 8月 5 21:26 rabbitmqctl-rwxr-xr-x 1 root root 1431 8月 5 21:26 rabbitmq-defaults-rwxr-xr-x 1 root root 11379 8月 5 21:26 rabbitmq-env-rwxr-xr-x 1 root root 1362 8月 5 21:26 rabbitmq-plugins-rwxr-xr-x 1 root root 9042 8月 5 21:26 rabbitmq-server注:rabbitmq-defaults 设置erl_dir目录
RabbitMQ的根目录:/var/lib/rabbitmqRabbitMQ的配置文件目录:/etc/rabbitmq/RabbitMQ的日志文件目录:/var/log/rabbitmq两个配置文件分别是:rabbitmq.config rabbitmq-env.conf
错误:
/usr/lib/rabbitmq/bin/rabbitmq-server:行49: /var/run/rabbitmq/pid: 权限不够
chown -R rabbitmq:rabbitmq /var/run/rabbitmq
缺少包:
socat is needed by rabbitmq-server-3.6.5-1.noarchyum install socat
启动服务:
service rabbitmq-server restart
浏览器查看:http://localhost:15672 用户名:guest 密码:guest画面显示如下表示安装正确
5 RabbitMQ集群配置
5.1普通集群
前提条件:将需要集群的机器已按照好RabbitMQ并且在运行
以node1、node2集群为例,将所有机器列表加入所有集群机器/etc/hosts文件中
拷贝任意集群机器~/.erlang.cookie文件到所有机器(请先停止rabbitmq然后再copy),同目录下并且执行chmod 600 ~/.erlang.cookie
保证rabbitmq运行正常,分别执行:
./rabbitmqctl stop_app./rabbitmqctl reset./rabbitmqctl start_app
连接集群:如node1连接node2在node1上执行
./rabbitmqctl stop_app ./rabbitmqctl join_clusterrabbit@node2./rabbitmqctlstart_app
在任意机器上查看集群状态执行:
./rabbitmqctlcluster_status
打开页面查看结果
注: 若有多台机器加入集群node3
./rabbitmqctlstop_app./rabbitmqctljoin_cluster rabbit@node2./rabbitmqctlstart_app
Node2和node3不需要执行join_cluster因为他们会自动加入链通
一般情况下进行三台机器集群
一台配置成磁盘存储(默认集群中至少保证有一台机器处于磁盘存储模式)、两台设置成内存存储
join_cluster--ram rabbit@node2
5.2高可用
可以通过LVS、haproxy作为网络均衡负载实现。已知在LVS环境下进行测试通过,请参看LVS安装手册
6添加用户
任意集群机器中执行
添加入库用户
./rabbitmqctl add_user impuser 123rty789
设置角色
./rabbitmqctl set_user_tags impuser administrator
设置虚拟空间
./rabbitmqctl add_vhost /imp
./rabbitmqctl set_permissions -p /imp impuser ".*"".*" ".*"
添加转发用户
./rabbitmqctl add_user transferuser 123rty789
设置角色
./rabbitmqctl set_user_tags transferuser administrator
设置虚拟空间
./rabbitmqctl add_vhost /transfer
./rabbitmqctl set_permissions -p /transfer transferuser ".*"".*" ".*"
添加布控报警用户
./rabbitmqctl add_user alarmuser 123rty789
设置角色
./rabbitmqctl set_user_tags alarmuser administrator
设置虚拟空间
./rabbitmqctl add_vhost /alarm
./rabbitmqctl set_permissions -p /alarm alarmuser ".*"".*" ".*"
7其他
删除虚拟空间
rabbitmqctl delete_vhost 虚拟空间
rabbitmqctl add_vhost 虚拟空间
端口配置:
RABBIYMQ_HOME/etc/rabbitmq/rabbitmq-env.conf
RABBITMQ_NODE_PORT=port
RABBIYMQ_HOME/etc/rabbitmq/rabbitmq.config
[
{rabbitmq_management,[{listener, [{port, 12345}]}]}
].
参考地址:
http://www.rabbitmq.com/configure.html,http://www.rabbitmq.com/man/rabbitmqctl.1.man.html
8注意事项
1、 集群中的软件版本必须一致包括Erlang
2、 若需要重新部署集群环境则在需要强制重置
a) 确保环境稳定运行./rabbitmqctl stop_app ./rabbitmqctl force_reset ./rabbitmqctlstart_app
3、 ERROR: node with name"rabbit" already running on ""
a) 同一台机器运行多个实例,可以通过rabbitmq-env.conf配置文件中的NODENAME配置选项配置节点名称
- Rabbitmq安装指南
- RabbitMQ指南(3)-安装部署
- RabbitMQ 菜鸟安装、RabbitMQ初接触 AMQP 安装、配置指南
- rabbitMQ Ubuntu下 安装指南(erlang和rabbitmq)
- Windows上安装配置RabbitMQ快速指南
- RabbitMQ指南
- RabbitMQ指南
- RabbitMQ指南
- JMS:Rabbitmq安装于CentOS6.X 安装指南
- 【RabbitMQ】Linux安装RabbitMQ
- rabbitmq开发入门指南
- RabbitMQ指南(Java)
- RabbitMQ官方指南翻译
- RabbitMQ指南(5)-HelloWorld
- RabbitMQ指南(上)
- RabbitMQ指南(中)
- RabbitMQ指南(下)
- RabbitMQ-官方指南
- ibatis使用
- FatMouse' Trade
- MFC笔记-----CDC 以及绘图
- XIB设计不足的一点看法
- android zxing 横屏改为竖屏的配置
- Rabbitmq安装指南
- Linux常见网络操作命令
- jxl 操作Excel表格之Workbook
- 反射
- 2015.10.31
- UVa 1400"Ray, Pass me the dishes!"(区间最大连续数组和)
- 数据库批量操作中SqlParameter参数传递的问题
- 一段时间的javascript学习回顾------小模块汇总
- Hackerrank (1): CodeStorm 2015 > Little Alexey's Tree