centos6.5安装rabbitmq 3.6.9
  BW1XAG7RjrKC 2023年11月02日 35 0


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源码 


http://erlang.org/download/otp_src_19.3.tar.gzcp ​​ otp_src_19.3.tar.gz​​​ /usr/src/ ​​​otp_src_19.3.tar.gz​​​cd /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


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


user '.*' '.*' '.*'   



#WEB登录


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



查看插件列表


./rabbitmq-plugins list



2.5 常用命令



------------------------------------------------


3 集群配置


ping通


vi /etc/hosts


ip1 host1


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


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


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  nQkVcpdWfLDr   2023年11月13日   24   0   0 DesktopSystem重启
  3M67F8YJLxn2   2023年11月13日   86   0   0 重启
BW1XAG7RjrKC