一个RabbitMQ消息代理是一个由一个或多个Erlang节点组成的逻辑组,其中的每个节点都共享users, virtual hosts, queues, exchanges, bindings, and runtime parameters。我们把这些相关节点组成的集合作为一个cluster(集群)。

What is Replicated?

所有数据需要在集群中的所有节点被复制。默认情况下,数据同一个数据只存在于其中一个节点上。为了在集群的节点之间复制数据,请高可用。

Hostname Resolution Requirements

RabbitMQ节点之间用域名名称,可以是简单的域名名称也可以用全限定的。因此,集群中的所有成员的hostnames(主机名)必须能够被解析。

Cluster Formation

创建集群的方式有很多种:

  • 在配置文件中声明
  • 基于DNS发现
  • 各种插件
  • 通过rabbitmqctl手动创建

所有的RabbitMQ消息代理在启动以后都是作为单个结点运行的。这些结点可以被加到集群中。

Failure Handling

RabbitMQ运行个别节点失败。必要的话,结点可以被启动和停止。

推荐运行在LAN(局域网)中

Disk and RAM Nodes

A node can be a disk node or a RAM node

90%的情况下你需要的的是disk node;而RAM node是为了提升集群的性能而使用的一种特殊情况。

由于RAM node只在内存中存储其内部数据库,因此它启动的时候必须从一个对等的节点那里同步这些信息,这也就意味着一个集群中至少要包含一个disk node。

结点之间如何相互认证:the Erlang Cookie

RabbitMQ结点用cookie来决定是否它们之间允许互相通信。两个结点之间要想相互通信,它们必须拥有相同的secret,这个secret被称为Erlang Cookie。这个cookie仅仅只是一个字符串,通常它被存储在本例文件中,这个文件只能被其所有者访问。集群中的每个结点必须有相同的cookie。如果这个文件不存在,那么当RabbitMQ服务器启动的时候Erlang VM将自动创建一个文件,其值是随机生成的。

Connecting to Clusters from Clients

一个客户端可以正常连接到集群中的任意结点。如果那个结点失败的话,集群中的剩余结点仍然可以提供服务,当然客户端应该也注意到连接以及关闭,并且能够重新连接到集群中的其它成员。一般而言,不建议将结点的主机名或者IP地址引入到应用程序中,因为这样会导致程序不够灵活,并且万一集群的结点配置变了的话应用程序也必须随之修改。代替的,推荐用一种更加抽象的方式:这种方式可能是一个动态的DNS服务。

参考  http://www.rabbitmq.com/clustering.html

RabbitMQ集群简介的更多相关文章

  1. rabbitmq集群搭建方法简介(测试机linux centos)【转】

    本文将介绍四台机器搭建rabbitmq集群: rabbitmq IP和主机名(每台机器已安装RabbitMQ 3.5.6, Erlang 18.1) 192.168.87.73 localhost73 ...

  2. RabbitMQ集群、镜像部署配置

    1   RABBITMQ简介及安装 RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python.Ruby..NET.Java.JMS.C.PHP.Act ...

  3. Springboot 1.5.x 集成基于Centos7的RabbitMQ集群安装及配置

    RabbitMQ简介 RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件). RabbitMQ是一套开源(MPL)的消息队列服务软件,是由LShift提供的一 ...

  4. CentOS7 搭建RabbitMQ集群 后台管理 历史消费记录查看

    简介 通过 Erlang 的分布式特性(通过 magic cookie 认证节点)进行 RabbitMQ 集群,各 RabbitMQ 服务为对等节点,即每个节点都提供服务给客户端连接,进行消息发送与接 ...

  5. RabbitMQ集群安装配置+HAproxy+Keepalived高可用

    RabbitMQ集群安装配置+HAproxy+Keepalived高可用 转自:https://www.linuxidc.com/Linux/2016-10/136492.htm rabbitmq 集 ...

  6. openstack(2) -------RabbitMQ集群部署

    一.RabbitMQ简介 RabbitMQ属于一个流行的开源消息队列系统.属于AMQP( 高级消息队列协议 ) 标准的一个 实现.是应用层协议的一个开放标准,为面向消息的中间件设计.用于在分布式系统中 ...

  7. CentOS7安装rabbitmq集群(二进制)

    一.RabbiMQ简介 RabbiMQ是用Erang开发的,集群非常方便,因为Erlang天生就是一门分布式语言,但其本身并不支持负载均衡. RabbiMQ模式 RabbitMQ模式大概分为以下三种: ...

  8. 消息型中间件之RabbitMQ集群

    在上一篇博客中我们简单的介绍了下rabbitmq简介,安装配置相关指令的说明以及rabbitmqctl的相关子命令的说明:回顾请参考https://www.cnblogs.com/qiuhom-187 ...

  9. 搭建高可用的rabbitmq集群 + Mirror Queue + 使用C#驱动连接

    我们知道rabbitmq是一个专业的MQ产品,而且它也是一个严格遵守AMQP协议的玩意,但是要想骚,一定需要拿出高可用的东西出来,这不本篇就跟大家说 一下cluster的概念,rabbitmq是erl ...

随机推荐

  1. bower简明入门教程

    什么是bower: Bower是一个客户端技术的软件包管理器,它可用于搜索.安装和卸载如JavaScript.HTML.CSS之类的网络资源.其他一些建立在Bower基础之上的开发工具,如YeoMan ...

  2. IEC2017级_1-2班两次博客作业成绩说明

    一.pta作业情况 前两次pta的答题情况,同学们“借鉴”情况突出,在点名公示后,第3次pta有明显好转,请同学们对自己要求更严格些. 二.博客作业情况 大多数同学能够按要求完成.第0次博客作业,个别 ...

  3. AHOI——Day1个人感悟

    今天,是个bilibili的日子.(嗯?什么意思?) 洛谷已经尽力了: 于是我带着洛谷的祝福,来到了AHOI的考场--合肥一中. 其实我是考完才签到的,我一大早五点多就起来了,到考场后,在肯德基吃了早 ...

  4. 4月23日 db 命令操作 和表操作

    1内容回顾: # 补充的知识点 # server端肯定是确定下来的 # mysql的客户端 # mysql.exe 直接在命令行就可以运行的 (学习阶段用) # navicat等可视化的客户端,是第三 ...

  5. JS中的同步和异步

    javascript语言是一门“单线程”的语言,不像java语言,类继承Thread再来个thread.start就可以开辟一个线程,所以,javascript就像一条流水线,仅仅是一条流水线而已,要 ...

  6. WindowsPE权威指南 第二章 小工具 pedump代码的C语言实现

    2016-11-16 16:29:07 主程序代码 pedump.c #include <windows.h> #include <Richedit.h> #include & ...

  7. wcf生成客户端代理类步骤及语句

    通过svcutil.exe工具生成客户端代理类和客户端的配置文件 .在运行中输入cmd打开命令行 ()cd C:\Program Files (x86)\Microsoft SDKs\Windows\ ...

  8. Notes : <Hands-on ML with Sklearn & TF> Chapter 7

    .caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...

  9. 深入浅出Git教程【转载】转载

    深入浅出Git教程(转载)   目录 一.版本控制概要 1.1.什么是版本控制 1.2.常用术语 1.3.常见的版本控制器 1.4.版本控制分类 1.4.1.本地版本控制 1.4.2.集中版本控制 1 ...

  10. Xaml引用图片路径的方式

    最近写代码的时候遇到过好几次引用某个路径下图片资源的情况,思索了一下,便将自己所知的在xaml里引用图片资源的方法写成了个小Demo,并完成了这篇博文.希望罗列出的这些方式能够对大家有所帮助. Xam ...