消息队列对于处理高并发还是非常不错的选择。所以电商必然会采取这种方式。废话不多说。贴代码先。

搭建环境:

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

  1. 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

  1. 安装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

  1. 安装rabbitmq插件
    安装RabbitMQ WebUI管理插件
rabbitmq-plugins enable rabbitmq_management
service rabbitmq-server restart

打开浏览器登录http://127.0.0.1: 15672

启动RabbitMQ Server

service rabbitmq-server start

  1. 集群搭建

太啰嗦的就不说了。需要注意的我会在这里提出:

  1. 你的host需要修改 在node1代码块可以看到。如果不改变,重启 shutdown -r now
  2. 你的.erlang.cookie 也是需要修改并都保持一样。
  3. 修改配置文件的时候要注意括号。
    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 集群搭建相关推荐

  1. RabbitMQ集群搭建(七)

    先来介绍一下RabbitMQ集群 RabbitMQ集群有两种模式,一种是普通模式,即默认的集群模式,另外一种为镜像模式,可以把队列做成镜像队列 我们在学习两种模式之前,先来了解下一些关于RabbitM ...

  2. centos7 rabbitMQ集群搭建

    资料参考网址 http://blog.csdn.net/woogeyu/article/details/51119101 http://www.cnblogs.com/lion.net/p/57254 ...

  3. RabbitMQ集群搭建

    目录 RabbitMQ集群搭建 集群方案的原理 单机多实例部署 停止rabbitmq服务 结束命令: rabbit2操作为从节点: 查看集群状态: web监控: 总结 RabbitMQ集群搭建 摘要: ...

  4. 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. ...

  5. RabbitMQ 集群搭建_02_rpm版本(linux环境)

    接上一篇:(企业级) CentOS7 安装 RabbitMQ最新版本 下载.安装.配置.运行.部署_01 文章目录 一.SHELL脚本说明 1. 选择脚本的原因 2. 脚本总览 二.脚本实战 2.1. ...

  6. rabbitmq集群搭建以及万级并发下的性能调优

    一. 服务器列表 ROLE OPERATING SYSTEM NAME SIZE AVAILABILITY SET PRIVATE IP ADDRESS DATA DISKS MOUNT  POINT ...

  7. RabbitMq(集群搭建)

    一.集群分类 普通集群 是一种分布式集群,将队列分散到各个节点上,提高整个集群的并发能力. 镜像集群 是一种主从集群,在普通集群的基础上,添加了主从备份,提高了数据可用性.(镜像集群虽然支持主从,但不 ...

  8. RabbitMQ的安装及集群搭建方法

    转自:http://blog.csdn.net/u013256816/article/details/53524766 RabbitMQ安装 1 安装erlang 下载地址:http://www.er ...

  9. RabbitMQ 高可用集群搭建

    RabbitMQ 高可用集群搭建 1 集群简介 1.1 集群架构 ​ 当单台 RabbitMQ 服务器的处理消息的能力达到瓶颈时,此时可以通过 RabbitMQ 集群来进行扩展,从而达到提升吞吐量的目 ...

最新文章

  1. csv data set config使用介绍
  2. linux桥接实现交换机功能
  3. WebForm编辑器的相关资源
  4. 在控制台中输入月,日. 计算这是一年的第几天.(Python)
  5. 浙江计算机二级报名步骤,浙江2016年9月计算机二级考生报名流程
  6. 流水灯verilog实验原理_IC设计实例解析之“流水线技术”
  7. 6-5.添加HLSL顶点着色
  8. flutter 判断是不是调试模式_当永恒的软键盘问题遇到Flutter
  9. 基于Java+MySQL的GPS定位学生在线人脸考勤签到系统
  10. js url传参进行编码
  11. centos7 刷新dns
  12. 电机扭矩计算公式T=9550*P/n
  13. 火狐上如何使用谷歌翻译插件_将Google翻译功能添加到Firefox
  14. 经纬度格式转换-(互转 度转度分秒 度分秒转度……)
  15. 简述x264几种码率控制方式的实现
  16. 机器学习之层次聚类(hierarchical clustering)
  17. Unity5 Standard自发光材质无效解决方法
  18. Sass-5【颜色函数、透明度函数、@规则】
  19. 智星云服务器之云主机使用教程简记
  20. 修正牛顿法编程python_GitHub - Maples7/newtonMethod: 牛顿法求解复数域上x^4-1=0收敛域的程序 using Python...

热门文章

  1. Css2.0+Css3.0+jQuery手册 chm
  2. 杭电多校(四)2019.7.31--暑假集训
  3. 算法函数:得到一个字符串中的最大长度的数字
  4. Java网络编程实例---------------------------------基本HTTP客户端及服务端多线程
  5. 完成一个MVC+Nhibernate+Jquery-EasyUI信息发布系统
  6. HDU 1301 Jungle Roads(裸最小生成树)
  7. 系统集成项目管理工程师-项目风险管理笔记
  8. python人工智能基础课免费_【领卡免费学】Python基础课(完整大课)
  9. 3764树上的异或值(自己研究的静态字典树)
  10. hdu2722 简单最短路,处理好输入就行