centos6.5安装rabbitmq 3.6.9

1. 安装 erlang
1.1 准备工作,先安装依赖库
yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel yum install ncurses-devel

1.2 下载erlang源码 
wget wget http://erlang.org/download/otp_src_19.3.tar.gzcp otp_src_19.3.tar.gz /usr/src/ otp_src_19.3.tar.gzcd /usr/srctar -xzvf otp_src_19.3.tar.gz mv otp_src_19.3 erlang_193

1.3 编译安装
cd erlang_193/ ./configure --prefix=/usr/local/erlang --with-ssl --enable-threads --enable-smp-support --enable-kernel-poll --enable-hipe --without-javac //不用java编译,故去掉java避免错误 make && make install //编译后安装

1.4 配置环境变量
vi /etc/profile # erlang path begin
ERL_HOME=/usr/local/erlang
export PATH=$PATH:$ERL_HOME/bin
# erlang path end
source /etc/profile #使设置立即生效

2 安装rabbitmq
cd /usr/local
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/rabbitmq_v3_6_9/rabbitmq-server-generic-unix-3.6.9.tar.xz #wget如果失败,手工下载本地再上传
xz -d rabbitmq-server-generic-unix-3.6.9.tar.xz
tar xvf rabbitmq-server-generic-unix-3.6.9.tar
mv rabbitmq_server-3.6.9 rabbitmq

#启动rabbitmq服务
/data/rabbitmq/sbin/rabbitmq-server

#后台启动
/data/rabbitmq/sbin/rabbitmq-server -detached

#关闭rabbitmq服务
/data/rabbitmq/sbin/rabbitmqctl stop
ps -ef | grep rabbit 和 kill -9 xxx

#开启插件管理页面
/data/rabbitmq/sbin/rabbitmq-plugins enable rabbitmq_management

#创建用户并分配角色
/data/rabbitmq/sbin/rabbitmqctl add_user user password
/data/rabbitmq/sbin/rabbitmqctl set_user_tags user administrator
/data/rabbitmq/sbin/rabbitmqctl  set_permissions -p /   user '.*' '.*' '.*'   

#WEB登录
http://IP:15672 名户名和密码默认guest无法外网登陆

查看插件列表
./rabbitmq-plugins list

2.5 常用命令

------------------------------------------------
3 集群配置
先配置两个节点主机hosts可以互相 ping通
vi /etc/hosts
ip1 host1
ip2 host2
先停止node2(设置cookie前必须先停止节点,网上资料都没有说到)
/data/rabbitmq/sbin/rabbitmqctl stop
node1 cookie:
***********
设置 Erlang Cookie与node1保持一致
通过源安装RabbitMQ在 /var/lib/rabbitmq/.erlang.cookie
通过源码安装RabbitMQ在 $HOME/.erlang.cookie
修改 node2 该文件权限为 777
chmod 777 /root/.erlang.cookie
从node1复制cookie到node2
scp -r ip1:/root/.erlang.cookie /root/
查看cookie
cat /root/.erlang.cookie
恢复只读权限
chmod 400 /root/.erlang.cookie
重新启动 node2
/data/rabbitmq/sbin/rabbitmq-server -detached
查看 node1名称
/data/rabbitmq/sbin/rabbitmqctl cluster_status
node2停止应用(不停止节点)
/data/rabbitmq/sbin/rabbitmqctl stop_app
node2加入集群
/data/rabbitmq/sbin/rabbitmqctl join_cluster rabbit@ host1
启动node2
/data/rabbitmq/sbin/rabbitmqctl start_app
更改节点为磁盘或内存节点(可选)
rabbitmqctl change_cluster_node_type disc/ram
配置镜像队列
/data/rabbitmq/sbin/rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all","ha-sync-mode":"automatic"}' # automatic 自动同步 manual 手动同步
同步命令
手动同步 rabbitmqctl sync_queue name 取消同步rabbitmqctl cancel_sync_queue name
4  RABBITMQ退出集群
假设要把rabbitmq2退出集群
在rabbitmq2上执行
#rabbitmqctl stop_app
#rabbitmqctl reset
#rabbitmqctl start_app
 
在集群主节点上执行
# rabbitmqctl forget_cluster_node rabbit@host2
5   RABBITMQ集群重启
集群重启时,最后一个挂掉的节点应该第一个重启,如果因特殊原因(比如同时断电),而不知道哪个节点最后一个挂掉。可用以下方法重启:
先在一个节点上执行
#rabbitmqctl force_boot
#service rabbitmq-server start
在其他节点上执行
#service rabbitmq-server start
查看cluster状态是否正常(要在所有节点上查询)。
#rabbitmqctl cluster_status
 
如果有节点没加入集群,可以先退出集群,然后再重新加入集群。
上述方法不适合内存节点重启,内存节点重启的时候是会去磁盘节点同步数据,如果磁盘节点没起来,内存节点一直失败。
6   注意事项
  • cookie在所有节点上必须完全一样,同步时一定要注意。
  • erlang是通过主机名来连接服务,必须保证各个主机名之间可以ping通。可以通过编辑/etc/hosts来手工添加主机名和IP对应关系。如果主机名ping不通,rabbitmq服务启动会失败。
  • 如果queue是非持久化queue,则如果创建queue的那个节点失败,发送方和接收方可以创建同样的queue继续运作。但如果是持久化queue,则只能等创建queue的那个节点恢复后才能继续服务。
  • 在集群元数据有变动的时候需要有disk node在线,但是在节点加入或退出的时候所有的disk node必须全部在线。如果没有正确退出disk node,集群会认为这个节点当掉了,在这个节点恢复之前不要加入其它节点。.
  • centos
  RabbitMQ的配置文件为:/etc/rabbitmq/rabbitmq.config
  RabbitMQ的环境配置文件为:/etc/rabbitmq/rabbitmq-env.conf

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值