rabbitmq 集群搭建
消息队列对于处理高并发还是非常不错的选择。所以电商必然会采取这种方式。废话不多说。贴代码先。
搭建环境:
Mac OS X 10.10.5 VMware Fusion8 Centos 6.7 rabbitmq-server-3.5.6-1.noarch.rpm erlang-17.4-1.el6.x86_64.rpm
- rabbitmq的搭建
wget http://www.rabbitmq.com/releases/erlang/erlang-17.4-1.el6.x86_64.rpm yum install erlang-17.4-1.el6.x86_64.rpm
- 安装rabbitmq
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.5.6/rabbitmq-server-3.5.6-1.noarch.rpm rpm --import http://www.rabbitmq.com/rabbitmq-signing-key-public.asc yum install rabbitmq-server-3.5.6-1.noarch.rpm
- 安装rabbitmq插件
安装RabbitMQ WebUI管理插件
rabbitmq-plugins enable rabbitmq_management service rabbitmq-server restart
打开浏览器登录http://127.0.0.1: 15672
启动RabbitMQ Server
service rabbitmq-server start
- 集群搭建
太啰嗦的就不说了。需要注意的我会在这里提出:
- 你的host需要修改 在node1代码块可以看到。如果不改变,重启 shutdown -r now
- 你的.erlang.cookie 也是需要修改并都保持一样。
- 修改配置文件的时候要注意括号。
stop [<pid_file>] 停止服务根据进程号stop_appstart_appwait <pid_file> 暂停reset 重置force_reset 强制重置rotate_logs <suffix> 日志文件 后缀join_cluster <clusternode> [—ram] 加入集群cluster_status 集群状态change_cluster_node_type disc | ram 改变集群节点类型forget_cluster_node [--offline] 取消节点rename_cluster_node oldnode1 newnode1 [oldnode2] [newnode2 …] 重命名节点update_cluster_nodes clusternode 更新节点force_boot 重置引导sync_queue queue 同步队列cancel_sync_queue queue 取消同步队列purge_queue queue 清除队列set_cluster_name name 设置集群名称add_user <username> <password> 添加用户delete_user <username> 删除用户change_password <username> <newpassword> 修改密码clear_password <username> 清除密码set_user_tags <username> <tag> ...设置角色权限list_users 查看所有的用户add_vhost <vhostpath> 添加主机delete_vhost <vhostpath> 删除主机list_vhosts [<vhostinfoitem> …] 所有主机set_permissions [-p <vhostpath>] <user> <conf> <write> <read> 给主机指定用户clear_permissions [-p <vhostpath>] <username> 清除一个主机的用户list_permissions [-p <vhostpath>] 一个主机下面的绑定的用户list_user_permissions <username> 用户的权限
node1:
sjk@192.168.10.73's password: Last login: Tue Nov 3 00:16:23 2015 from 192.168.10.14[sjk@rabbitmq-node1 ~]$ lsDesktop Documents Downloads Music Pictures Public Templates Videos[sjk@rabbitmq-node1 ~]$ cd /usr/local/[sjk@rabbitmq-node1 local]$ lsbin games jdk1.7.0_80 lib64 nginx sbin src usretc include lib libexec openssl share tomcat[sjk@rabbitmq-node1 local]$ lsbin games jdk1.7.0_80 lib64 nginx sbin src usretc include lib libexec openssl share tomcat[sjk@rabbitmq-node1 local]$ cd /usr/programmer/[sjk@rabbitmq-node1 programmer]$ lsapache-tomcat-8.0.26.tar.gz nginx-1.9.4.tar.gzerlang-17.4-1.el6.x86_64.rpm openssl-1.0.2c.tar.gzgo1.4.2.linux-amd64.tar.gz rabbitmq-server-3.5.6-1.noarch.rpmjdk-7u80-linux-x64.tar.gz redis-3.0.3.tarmongodb-linux-x86_64-3.0.6.tgz solr-5.2.1.tgzmongodb-osx-x86_64-3.0.6.tgz zookeeper-3.4.6.tar.gznginx-1.8.0.tar.gz[sjk@rabbitmq-node1 programmer]$ cat /etc/hosts192.168.10.73 rabbitmq-node1.com rabbitmq-node1192.168.10.74 rabbitmq-node2.com rabbitmq-node2192.168.10.75 rabbitmq-node3.com rabbitmq-node3[sjk@rabbitmq-node1 programmer]$ vim /etc/hosts[sjk@rabbitmq-node1 programmer]$ sudo -i[sudo] password for sjk: [root@rabbitmq-node1 ~]# vim /etc/hosts[root@rabbitmq-node1 ~]# service rabbitmq-server startStarting rabbitmq-server: SUCCESSrabbitmq-server.[root@rabbitmq-node1 ~]# cd /etc/rabbitmq/[root@rabbitmq-node1 rabbitmq]# lsenabled_plugins[root@rabbitmq-node1 rabbitmq]# mv /usr/rabbitmq.config /etc/rabbitmq/[root@rabbitmq-node1 rabbitmq]# cat /var/lib/rabbitmq/.erlang.cookie ATDTSAHIFSBKTQDSYKMA[root@rabbitmq-node1 rabbitmq]# service rabbitmq-server stopStopping rabbitmq-server: rabbitmq-server.[root@rabbitmq-node1 rabbitmq]# vim rabbitmq.config [root@rabbitmq-node1 rabbitmq]# vim /etc/rabbitmq/rabbitmq-env.conf[root@rabbitmq-node1 rabbitmq]# vim /etc/rabbitmq/rabbitmq-env.conf[root@rabbitmq-node1 rabbitmq]# service rabbitmq-server startStarting rabbitmq-server: SUCCESSrabbitmq-server.[root@rabbitmq-node1 rabbitmq]# service rabbitmq-server stopStopping rabbitmq-server: rabbitmq-server.[root@rabbitmq-node1 rabbitmq]# lsenabled_plugins rabbitmq.config rabbitmq-env.conf[root@rabbitmq-node1 rabbitmq]# cat rabbitmq-env.conf RABBITMQ_MNESIA_BASE=/var/lib/rabbitmq/#需要使用的MNESIA数据库的路径RABBITMQ_LOG_BASE=/var/log/rabbitmq/#log的路径RABBITMQ_PLUGINS_DIR=/usr/lib/rabbitmq/lib/rabbitmq_server-3.5.6/plugins/#插件的路径[root@rabbitmq-node1 rabbitmq]# vim rabbitmq.config [root@rabbitmq-node1 rabbitmq]# service rabbitmq-server startStarting rabbitmq-server: FAILED - check /var/log/rabbitmq/startup_{log, _err}rabbitmq-server.[root@rabbitmq-node1 rabbitmq]# cat /var/log/rabbitmq/startup_err Crash dump was written to: erl_crash.dumpcould not start kernel pid (application_controller) (error in config file "/etc/rabbitmq/rabbitmq.config" (253): syntax error before: ']')[root@rabbitmq-node1 rabbitmq]# vim rabbitmq.config [root@rabbitmq-node1 rabbitmq]# service rabbitmq-server startStarting rabbitmq-server: SUCCESSrabbitmq-server.[root@rabbitmq-node1 rabbitmq]# service rabbitmq-server stopStopping rabbitmq-server: rabbitmq-server.[root@rabbitmq-node1 rabbitmq]# service rabbitmq-server startStarting rabbitmq-server: SUCCESSrabbitmq-server.[root@rabbitmq-node1 rabbitmq]# rabbitmqctl cluster_statusCluster status of node 'rabbit@rabbitmq-node1' ...[{nodes,[{disc,['rabbit@rabbitmq-node1']}]},{running_nodes,['rabbit@rabbitmq-node1']},{cluster_name,<<"rabbit@rabbitmq-node1.com">>},{partitions,[]}][root@rabbitmq-node1 rabbitmq]# rabbitmqctl stop_appStopping node 'rabbit@rabbitmq-node1' ...[root@rabbitmq-node1 rabbitmq]# rabbitmqctl resetResetting node 'rabbit@rabbitmq-node1' ...[root@rabbitmq-node1 rabbitmq]# rabbitmqctl join_cluster rabbit@rabbitmq-node1Clustering node 'rabbit@rabbitmq-node1' with 'rabbit@rabbitmq-node1' ...Error: cannot_cluster_node_with_itself[root@rabbitmq-node1 rabbitmq]# rabbitmqctl start_appStarting node 'rabbit@rabbitmq-node1' ...[root@rabbitmq-node1 rabbitmq]# rabbitmqctl cluster_statusCluster status of node 'rabbit@rabbitmq-node1' ...[{nodes,[{disc,['rabbit@rabbitmq-node1','rabbit@rabbitmq-node2','rabbit@rabbitmq-node3']}]},{running_nodes,['rabbit@rabbitmq-node1']},{cluster_name,<<"rabbit@rabbitmq-node1.com">>},{partitions,[]}][root@rabbitmq-node1 rabbitmq]# rabbitmqctl add_user lxc rootCreating user "lxc" ...[root@rabbitmq-node1 rabbitmq]# rabbitmqctl set_user_tags lxc administratorSetting tags for user "lxc" to [administrator] ...[root@rabbitmq-node1 rabbitmq]#
node2:
sjk@192.168.10.74's password: Last login: Tue Nov 3 12:52:44 2015 from 192.168.10.14[sjk@rabbitmq-node2 ~]$ cd /usr/local/[sjk@rabbitmq-node2 local]$ lsbin games jdk1.7.0_80 lib64 sbin srcetc include lib libexec share tomcat[sjk@rabbitmq-node2 local]$ cd /usr/programmer/[sjk@rabbitmq-node2 programmer]$ l;s-bash: l: command not found-bash: s: command not found[sjk@rabbitmq-node2 programmer]$ lsapache-tomcat-8.0.26.tar.gz nginx-1.8.0.tar.gzerlang-17.4-1.el6.x86_64.rpm nginx-1.9.4.tar.gzgo1.4.2.linux-amd64.tar.gz rabbitmq-server-3.5.6-1.noarch.rpmjdk-7u80-linux-x64.tar.gz redis-3.0.3.tarmongodb-linux-x86_64-3.0.6.tgz solr-5.2.1.tgzmongodb-osx-x86_64-3.0.6.tgz zookeeper-3.4.6.tar.gz[sjk@rabbitmq-node2 programmer]$ sudo -i[sudo] password for sjk: [root@rabbitmq-node2 ~]# vim /etc/hosts[root@rabbitmq-node2 ~]# service rabbitmq-server startStarting rabbitmq-server: SUCCESSrabbitmq-server.[root@rabbitmq-node2 ~]# cd /etc/rabbitmq/[root@rabbitmq-node2 rabbitmq]# lsenabled_plugins[root@rabbitmq-node2 rabbitmq]# mv /usr/rabbitmq.config /etc/rabbitmq/[root@rabbitmq-node2 rabbitmq]# cat /var/lib/rabbitmq/.erlang.cookie ATDTSAHIFSBKTQDSYKMA[root@rabbitmq-node2 rabbitmq]# service rabbitmq-server stopStopping rabbitmq-server: rabbitmq-server.[root@rabbitmq-node2 rabbitmq]# lsenabled_plugins rabbitmq.config[root@rabbitmq-node2 rabbitmq]# vim rabbitmq-env.conf [root@rabbitmq-node2 rabbitmq]# vim rabbitmq-env.conf [root@rabbitmq-node2 rabbitmq]# vim rabbitmq.config [root@rabbitmq-node2 rabbitmq]# service rabbitmq-server startStarting rabbitmq-server: SUCCESSrabbitmq-server.[root@rabbitmq-node2 rabbitmq]# rabbitmqctl cluster_statusCluster status of node 'rabbit@rabbitmq-node2' ...[{nodes,[{disc,['rabbit@rabbitmq-node2']}]},{running_nodes,['rabbit@rabbitmq-node2']},{cluster_name,<<"rabbit@rabbitmq-node2.com">>},{partitions,[]}][root@rabbitmq-node2 rabbitmq]# rabbitmqctl stop_appStopping node 'rabbit@rabbitmq-node2' ...[root@rabbitmq-node2 rabbitmq]# rabbitmqctl resetResetting node 'rabbit@rabbitmq-node2' ...[root@rabbitmq-node2 rabbitmq]# rabbitmqctl join_cluster rabbit@rabbitmq-node1Clustering node 'rabbit@rabbitmq-node2' with 'rabbit@rabbitmq-node1' ...[root@rabbitmq-node2 rabbitmq]# [root@rabbitmq-node2 rabbitmq]# rabbitmqctl start_appStarting node 'rabbit@rabbitmq-node2' ...[root@rabbitmq-node2 rabbitmq]#
node3:
sjk@192.168.10.75's password: Last login: Tue Nov 3 12:59:37 2015 from 192.168.10.14[sjk@rabbitmq-node3 ~]$ cat /etc/rabbitmq/cat: /etc/rabbitmq/: 是一个目录[sjk@rabbitmq-node3 ~]$ lsDesktop Documents Downloads Music Pictures Public Templates Videos[sjk@rabbitmq-node3 ~]$ sudo -i[sudo] password for sjk: [root@rabbitmq-node3 ~]# vim /etc/hosts[root@rabbitmq-node3 ~]# [root@rabbitmq-node3 ~]# [root@rabbitmq-node3 ~]# service rabbitmq-server startStarting rabbitmq-server: SUCCESSrabbitmq-server.[root@rabbitmq-node3 ~]# cd /etc/rabbitmq/[root@rabbitmq-node3 rabbitmq]# lsenabled_plugins rabbitmq.config rabbitmq.config.example[root@rabbitmq-node3 rabbitmq]# scp rabbitmq.config root@192.168.10.73:/usr/The authenticity of host '192.168.10.73 (192.168.10.73)' can't be established. RSA key fingerprint is ba:e1:f0:bd:2f:67:15:cd:50:e2:cf:df:87:01:b9:13.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added '192.168.10.73' (RSA) to the list of known hosts.root@192.168.10.73's password: rabbitmq.config 100% 19KB 19.1KB/s 00:00 [root@rabbitmq-node3 rabbitmq]# scp rabbitmq.config root@192.168.10.74:/usr/The authenticity of host '192.168.10.74 (192.168.10.74)' can't be established. RSA key fingerprint is ba:e1:f0:bd:2f:67:15:cd:50:e2:cf:df:87:01:b9:13.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added '192.168.10.74' (RSA) to the list of known hosts.root@192.168.10.74's password: rabbitmq.config 100% 19KB 19.1KB/s 00:00 [root@rabbitmq-node3 rabbitmq]# cat /var/lib/rabbitmq/.erlang.cookie ATDTSAHIFSBKTQDSYKMA[root@rabbitmq-node3 rabbitmq]# service rabbitmq-server stopStopping rabbitmq-server: rabbitmq-server.[root@rabbitmq-node3 rabbitmq]# lsenabled_plugins rabbitmq.config rabbitmq.config.example[root@rabbitmq-node3 rabbitmq]# vim rabbitmq-env.conf [root@rabbitmq-node3 rabbitmq]# vim rabbitmq-env.conf [root@rabbitmq-node3 rabbitmq]# vim rabbitmq.config[root@rabbitmq-node3 rabbitmq]# service rabbitmq-server startStarting rabbitmq-server: SUCCESSrabbitmq-server.[root@rabbitmq-node3 rabbitmq]# rabbitmqctl cluster_statusCluster status of node 'rabbit@rabbitmq-node3' ...[{nodes,[{disc,['rabbit@rabbitmq-node3']}]},{running_nodes,['rabbit@rabbitmq-node3']},{cluster_name,<<"rabbit@rabbitmq-node3.com">>},{partitions,[]}][root@rabbitmq-node3 rabbitmq]# rabbitmqctl stop_appStopping node 'rabbit@rabbitmq-node3' ...[root@rabbitmq-node3 rabbitmq]# rabbitmqctl resetResetting node 'rabbit@rabbitmq-node3' ...[root@rabbitmq-node3 rabbitmq]# rabbitmqctl join_cluster rabbit@rabbitmq-node1Clustering node 'rabbit@rabbitmq-node3' with 'rabbit@rabbitmq-node1' ...Error: mnesia_not_running[root@rabbitmq-node3 rabbitmq]# rabbitmqctl join_cluster rabbit@rabbitmq-node1Clustering node 'rabbit@rabbitmq-node3' with 'rabbit@rabbitmq-node1' ...[root@rabbitmq-node3 rabbitmq]# rabbitmqctl start_appStarting node 'rabbit@rabbitmq-node3' ...[root@rabbitmq-node3 rabbitmq]#
rabbitmq.config 的内容:我删除了一些注释。因为So Long~
%% -*- mode: erlang -*- %% ---------------------------------------------------------------------------- %% RabbitMQ Sample Configuration File. %% %% See http://www.rabbitmq.com/configure.html for details. %% ---------------------------------------------------------------------------- [{rabbit,[{cluster_nodes, {[' rabbit@rabbitmq-node1', ' rabbit@rabbitmq-node2', ' rabbit@rabbitmq-node3'], disc}}]},%% ----------------------------------------------------------------------------%% Advanced Erlang Networking/Clustering Options.%%%% See http://www.rabbitmq.com/clustering.html for details%% ----------------------------------------------------------------------------{kernel,[%% Sets the net_kernel tick time.%% Please see http://erlang.org/doc/man/kernel_app.html and%% http://www.rabbitmq.com/nettick.html for further details.%%%% {net_ticktime, 60}]},%% ----------------------------------------------------------------------------%% RabbitMQ Management Plugin%%%% See http://www.rabbitmq.com/management.html for details%% ----------------------------------------------------------------------------{rabbitmq_management,[ {listener, [{port, 8080},{ip, "0.0.0.0"},{ssl, false}]} ]},%% ----------------------------------------------------------------------------%% RabbitMQ Shovel Plugin%%%% See http://www.rabbitmq.com/shovel.html for details%% ----------------------------------------------------------------------------{rabbitmq_shovel,[{shovels,[]}%% Rather than specifying some values per-shovel, you can specify%% them for all shovels here.%%%% {defaults, [{prefetch_count, 0},%% {ack_mode, on_confirm},%% {publish_fields, []},%% {publish_properties, [{delivery_mode, 2}]},%% {reconnect_delay, 2.5}]}]},%% ----------------------------------------------------------------------------%% RabbitMQ Stomp Adapter%%%% See http://www.rabbitmq.com/stomp.html for details%% ----------------------------------------------------------------------------{rabbitmq_stomp,[]},%% ----------------------------------------------------------------------------%% RabbitMQ MQTT Adapter%%%% See https://github.com/rabbitmq/rabbitmq-mqtt/blob/stable/README.md%% for details%% ----------------------------------------------------------------------------{rabbitmq_mqtt,[]},%% ----------------------------------------------------------------------------%% RabbitMQ AMQP 1.0 Support%%%% See https://github.com/rabbitmq/rabbitmq-amqp1.0/blob/stable/README.md%% for details%% ----------------------------------------------------------------------------{rabbitmq_amqp1_0,[]},%% ----------------------------------------------------------------------------%% RabbitMQ LDAP Plugin%%%% See http://www.rabbitmq.com/ldap.html for details.%%%% ----------------------------------------------------------------------------{rabbitmq_auth_backend_ldap,[]} ].
我也借鉴了一些大神的博客。也看了官方文档。还在继续提高中~~~
版权声明:本文为博主原创文章,未经博主允许不得转载。
转载于:https://www.cnblogs.com/YoRuo/p/4956803.html
rabbitmq 集群搭建相关推荐
- RabbitMQ集群搭建(七)
先来介绍一下RabbitMQ集群 RabbitMQ集群有两种模式,一种是普通模式,即默认的集群模式,另外一种为镜像模式,可以把队列做成镜像队列 我们在学习两种模式之前,先来了解下一些关于RabbitM ...
- centos7 rabbitMQ集群搭建
资料参考网址 http://blog.csdn.net/woogeyu/article/details/51119101 http://www.cnblogs.com/lion.net/p/57254 ...
- RabbitMQ集群搭建
目录 RabbitMQ集群搭建 集群方案的原理 单机多实例部署 停止rabbitmq服务 结束命令: rabbit2操作为从节点: 查看集群状态: web监控: 总结 RabbitMQ集群搭建 摘要: ...
- RabbitMQ集群搭建、镜像队列、实现高可用负载均衡、Federation Exchange、Federation Queue、Shovel
1.环境准备 IP地址 主机名 192.168.56.20 conch01 192.168.56.21 conch02 192.168.56.22 conch03 2.安装 rabbitmq集群 1. ...
- RabbitMQ 集群搭建_02_rpm版本(linux环境)
接上一篇:(企业级) CentOS7 安装 RabbitMQ最新版本 下载.安装.配置.运行.部署_01 文章目录 一.SHELL脚本说明 1. 选择脚本的原因 2. 脚本总览 二.脚本实战 2.1. ...
- rabbitmq集群搭建以及万级并发下的性能调优
一. 服务器列表 ROLE OPERATING SYSTEM NAME SIZE AVAILABILITY SET PRIVATE IP ADDRESS DATA DISKS MOUNT POINT ...
- RabbitMq(集群搭建)
一.集群分类 普通集群 是一种分布式集群,将队列分散到各个节点上,提高整个集群的并发能力. 镜像集群 是一种主从集群,在普通集群的基础上,添加了主从备份,提高了数据可用性.(镜像集群虽然支持主从,但不 ...
- RabbitMQ的安装及集群搭建方法
转自:http://blog.csdn.net/u013256816/article/details/53524766 RabbitMQ安装 1 安装erlang 下载地址:http://www.er ...
- RabbitMQ 高可用集群搭建
RabbitMQ 高可用集群搭建 1 集群简介 1.1 集群架构 当单台 RabbitMQ 服务器的处理消息的能力达到瓶颈时,此时可以通过 RabbitMQ 集群来进行扩展,从而达到提升吞吐量的目 ...
最新文章
- csv data set config使用介绍
- linux桥接实现交换机功能
- WebForm编辑器的相关资源
- 在控制台中输入月,日. 计算这是一年的第几天.(Python)
- 浙江计算机二级报名步骤,浙江2016年9月计算机二级考生报名流程
- 流水灯verilog实验原理_IC设计实例解析之“流水线技术”
- 6-5.添加HLSL顶点着色
- flutter 判断是不是调试模式_当永恒的软键盘问题遇到Flutter
- 基于Java+MySQL的GPS定位学生在线人脸考勤签到系统
- js url传参进行编码
- centos7 刷新dns
- 电机扭矩计算公式T=9550*P/n
- 火狐上如何使用谷歌翻译插件_将Google翻译功能添加到Firefox
- 经纬度格式转换-(互转 度转度分秒 度分秒转度……)
- 简述x264几种码率控制方式的实现
- 机器学习之层次聚类(hierarchical clustering)
- Unity5 Standard自发光材质无效解决方法
- Sass-5【颜色函数、透明度函数、@规则】
- 智星云服务器之云主机使用教程简记
- 修正牛顿法编程python_GitHub - Maples7/newtonMethod: 牛顿法求解复数域上x^4-1=0收敛域的程序 using Python...
热门文章
- Css2.0+Css3.0+jQuery手册 chm
- 杭电多校(四)2019.7.31--暑假集训
- 算法函数:得到一个字符串中的最大长度的数字
- Java网络编程实例---------------------------------基本HTTP客户端及服务端多线程
- 完成一个MVC+Nhibernate+Jquery-EasyUI信息发布系统
- HDU 1301 Jungle Roads(裸最小生成树)
- 系统集成项目管理工程师-项目风险管理笔记
- python人工智能基础课免费_【领卡免费学】Python基础课(完整大课)
- 3764树上的异或值(自己研究的静态字典树)
- hdu2722 简单最短路,处理好输入就行