准备

  1.准备3台物理机 我这里通过本地机和2台虚拟模拟我是mac通过(Parallel Desktop 实现)

2.按照签名的liux安装步骤在3台机器都安装rabiitMq

3.将任意一节点的cookie复制到其他2台保证一致 cookie路径为$HOME/.erlang.cookie 可以通过echo $HOME 查看环境变量值

注:如果提示只读  1.ctrl+c退出 执行sudo!!  2.执行 vim 修改文件 3.保存加上!强制执行 :wq!

4.修改每台机器的host映射保证根据映射能相互ping通

5.守护进程启动三台mq

./rabbitmq-server -detached

6.检查启动状态

./rabbitmqctl cluster_status

7.如果启动成功如下图 我这里是已经加入集群了 所以看到三个节点 未加入集群就只能看到当前节点

8.分别在node2和node3自行加入集群节点(因为是同级的所以顺序没关系 可以是在node1 node3 执行加入node2)

rabbitmqctl stop_app

rabbitmqctl join_cluster rabbit@node1

rabbitmqctl start_app

9.然后通过任意节点执行./rabbitmqctl cluster_status就可以看到7那个图

10.需要注意 如果通过stop_app节点全部关闭 第一个启动节点需要是最后关闭的那个节点 其他节点启动都会等待它启动成功 超时会报错

如:我一次关闭节点1 节点2 节点3

然后我启动节点2

会处于等待状态 会一致等待node2

如果node2 由于某种情况无法启动 可以通过以下方式

方式1:

./rabbitmqctl forget_cluster_node rabbit@node3 -offline (测试过不行)

方式2(推荐):

在node2执行

./rabbitmqctl reset (测试过 也不行 会等待)

将重置集群 所有节点都成为一个独立节点

集群节点类型

1.通过./rabbitmqctl cluster_status

disc表示磁盘类型  保证队列、交换器、绑定关系、用户、权限、和vhost都会保存到磁盘 重启不会丢失

2.加入集群时可以通过指定为内存类型(部分节点使用内存类型保证最佳性能)

rabbitmqctl stop_app

rabbitmqctl join_cluster rabbit@node1 --ram

rabbitmqctl start_app

3.如果集群已经搭建好了可以通过以下命令进行切换

./rabbitmqctl stop_app

./rabbitmqctl change_cluster_node_type ram

./rabbitmqctl start_app

注意点

rabbitMQ中 在集群中创建队列、交换器、或者绑定关系 需要所有集群中的节点都提交成功才会返回 这意味着都是磁盘节点写入磁盘操作是昂贵的

在内存节点提供高昂的性能磁盘节点提供可靠性 如何做抉择

rabbitMQ保证集群中至少一个集群节点 如果节点变更都会至少通知一个磁盘节点,如果磁盘节点挂了那么将不能添加元数据信息,所以我们再集群汇总至少保证2~3个磁盘节点其他都是内存节点

剔除节点

节点运行中

比如要剔除node3

1.在node3执行

./rabbitmqctl stop_app

2.集群中任意节点执行

./rabbitmqctl forget_cluster_node rabbit@node3

可以看到node3不存在了成功剔除

集群节点升级

思路描述 具体看书162页 大概是将新版本mq的数据路径指向老版本

一台机器部署多个节点

方便测试和验证集群特性 书163页

mq日志查看

书165页 不过跟当前版本不一致 日志文件路径再 rabbithome的var目录下

在打开rabbitMQ之前 可以他开一个新的窗口 tail -f 日志文件-n 200 查看实时每个操作日志是什么 久而久之就熟悉了

如果日志文件太大可以进行手动切分 如:./rabbitmqctl rotate_logs 01

后续日志则会记录在.01的文件里面(或者通过Liunx cronta 定时任务 每天切分)

可以通过创建mq相应交换器 日志信息会投递到对应的交换器绑定的对应队列 我们通过程序消费解析 通过程序查看 书:170页

RabbitMQ-rabbitmqctl多机多节点和单机多节点集群搭建(五)的更多相关文章

  1. Zookeeper节点增删改查与集群搭建(笔记)

    1.上传文件目录说明 上传的文件一般放在 /home/下 安装文件一般在 /usr/local/下 2. 安装zookeeper 2.1将zookeeper-3.4.11.tar.gz拷贝到/home ...

  2. Redis单机安装以及集群搭建

    今天主要来看一下Redis的安装以及集群搭建(我也是第一次搭建). 环境:CentOS 7.1,redis-5.0.7 一.单机安装 1.将Redis安装包放置服务器并解压 2.进入redis安装目录 ...

  3. Hadoop单机/伪分布式集群搭建(新手向)

    此文已由作者朱笑笑授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 本文主要参照官网的安装步骤实现了Hadoop伪分布式集群的搭建,希望能够为初识Hadoop的小伙伴带来借鉴意 ...

  4. Elasticsearch单机安装_集群搭建_索引基本操作_Head插件安装与基本操作_ik分词器配置_logstash实现数据同步_教程

    一.Elasticsearch单机安装 1.将es安装包传到服务器上 这是安装包 这里我是用的是WinSCP上传工具,上传到/home/plugins文件下. 进入Xshell,验证一下是否上传成功. ...

  5. RabbitMQ镜像队列集群搭建、与SpringBoot整合

    镜像模式 集群模式非常经典的就是Mirror镜像模式,保证100%数据不丢失,在实际工作中也是用的最多的,并且实现集群比较的简单. Mirror镜像队列,目的是为了保证 RabbitMQ 数据的高可靠 ...

  6. redhat6.5 redis单节点多实例3A集群搭建

    在进行搭建redis3M 集群之前,首先要明白如何在单节点上完成redis的搭建. 单节点单实例搭建可以参看这个网:https://www.cnblogs.com/butterflies/p/9628 ...

  7. RabbitMQ入门教程(十四):RabbitMQ单机集群搭建

    原文:RabbitMQ入门教程(十四):RabbitMQ单机集群搭建 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://b ...

  8. RabbitMQ的使用(二)- RabbitMQ服务在单机中做集群

    RabbitMQ的使用(二)- RabbitMQ服务在单机中做集群 作者:markjiang7m2 原文地址:https://www.cnblogs.com/markjiang7m2/p/128371 ...

  9. Zookeeper集群搭建(单机多节点,伪集群,docker-compose集群)

    Zookeeper介绍 原理简介 ZooKeeper是一个分布式的.开源的分布式应用程序协调服务.它公开了一组简单的原语,分布式应用程序可以在此基础上实现更高级别的同步.配置维护.组和命名服务.它的设 ...

随机推荐

  1. bzoj 1741: [Usaco2005 nov]Asteroids 穿越小行星群【最大点覆盖】

    二分图最大点覆盖模型,因为对于一个点(x,y)显然只要选x或者y就好了,于是连边,跑最大匹配=最大点覆盖(不会证) #include<iostream> #include<cstdi ...

  2. sshd服务器搭建管理和防止暴力破解

    1.1 Linux服务前期环境准备,搭建一个RHEL7环境 1.2 sshd服务安装-ssh命令使用方法 1.3 sshd服务配置和管理 1.4 防止SSHD服务暴力破解的几种方式 1.1 Linux ...

  3. swoole之 swoole_process 应用于TP框架

    swoole_process 实现了多进程的管理,多个进程同时进行采集任务, 公司的框架比较low,用的tp框架,结合tp框架实现多进程的采集 这是swoole好的学习资源 https://segme ...

  4. 全面学习ORACLE Scheduler特性(11)使用Job Classes

    六.使用Job Classes Job Classes 相当于创建了一个job组,DBA可以将那些具有相同特性的job,统统放到相同的Job Classes中,然后通过对Job Class应用ORAC ...

  5. 【转】mysql中select用法

    转自:http://blog.sina.com.cn/s/blog_a74f39a201013c3b.html 1.选择所有的记录 select * from table_name; 其中*表示表中的 ...

  6. scala学习笔记1: scala method

    刚接触scala,做练习的时候碰到一个问题,顺便mark一下. 先看下面一段代码: def sum(args:Int*) = { var result = 0 for (arg <- args) ...

  7. 从 C++ 到 Objective-C 的快速指南

    简介 当我开始为iOS写代码的时候,我意识到,作为一个C++开发者,我必须花费更多的时间来弄清楚Objective-C中怪异的东西.这就是一个帮助C++专家的快速指南,能够使他们快速的掌握Apple的 ...

  8. Java高级程序员(5年左右)面试的题目集

    Java高级程序员(5年左右)面试的题目集 https://blog.csdn.net/fangqun663775/article/details/73614850?utm_source=blogxg ...

  9. 设置打印机共享,适用Win7、Vista、xp,不用密码

    此处以HP M1213nf为例,其他型号大同小异. 1.设置打印机共享: "开始"→  "控制面板"→  "设备和打印机" 2.找到&quo ...

  10. 学习笔记 第五章 使用CSS美化网页文本

    第五章   使用CSS美化网页文本 学习重点 定义字体类型.大小.颜色等字体样式: 设计文本样式,如对齐.行高.间距等: 能够灵活设计美观.实用的网页正文版式. 5.1 字体样式 5.1.1 定义字体 ...