RabbitMQ一共具有三种模式:单机、普通集群、镜像集群

单机模式

单机模式,就是我们平常玩的demo,生产上肯定不能用。具体安装部署过程可以参考我的这篇文章:CentsOS原生RabbitMQ安装过程

普通集群

普通集群就是在多台机器上启动多个实例。每个队列只会存在其中的一个实例上,然后所有实例同步这些队列的元数据。消费者在进行消费的时候,如果连接的实例上恰好不是队列所在的实例,就会根据队列的元数据去队列所在实例上拉取数据

由此可知,集群模式并没做到分布式,如果队列所在的实例宕机了,会导致接下来其他实例就无法从那个实例拉取消息

所以集群主要是提高吞吐量的

关于集群模式的安装部署过程可以参考我的这篇文章:RabbitMQ集群安装

镜像集群

跟普通集群模式不一样的是,在镜像集群模式下,无论队列中的元数据还是消息都会存在于多个实例上,就是说,每个 RabbitMQ 节点都有这个 队列的一个完整镜像。然后每次写消息到队列的时候,都会自动把消息同步到多个实例上

如何开启镜像集群

首先镜像集群是在普通集群的基础上的,所以你要先搭建一个普通集群,然后在随意一个实例上执行如下命令创建一个策略即可开启

rabbitmqctl set_policy -p vhostName name “^xxqueue” '{“ha-mode”:“all”}'

name是策略的名字

xxqueue是需要匹配的队列名称,如果要匹配所有的话使用^

RabbitMQ如何实现高可用的更多相关文章

  1. Rabbitmq集群高可用测试

    Rabbitmq集群高可用 RabbitMQ是用erlang开发的,集群非常方便,因为erlang天生就是一门分布式语言,但其本身并不支持负载均衡. Rabbit模式大概分为以下三种:单一模式.普通模 ...

  2. Rabbitmq集群高可用部署详细

    序言 清风万里的季节,周末本该和亲人朋友一起消遣这烂漫的花花草草,或是懒洋洋的晒个太阳听听风声鸟鸣.无奈工作使然,理想使然,我回到啦公司,敲起啦键盘,撸起啦代码,程序狗的世界一片黯然,一片黯然,愿天下 ...

  3. (十)RabbitMQ消息队列-高可用集群部署实战

    原文:(十)RabbitMQ消息队列-高可用集群部署实战 前几章讲到RabbitMQ单主机模式的搭建和使用,我们在实际生产环境中出于对性能还有可用性的考虑会采用集群的模式来部署RabbitMQ. Ra ...

  4. rabbitmq+ keepalived+haproxy高可用集群详细命令

    公司要用rabbitmq研究了两周,特把 rabbitmq 高可用的研究成果备下 后续会更新封装的类库 安装erlang wget http://www.gelou.me/yum/erlang-18. ...

  5. Rabbitmq集群高可用

    转载:https://www.cnblogs.com/flat_peach/archive/2013/04/07/3004008.html RabbitMQ是用erlang开发的,集群非常方便,因为e ...

  6. rabbitmq安装与高可用集群配置

    rabbitmq版本:3.6.12 rabbitmq安装 1.安装openssl wget http://www.openssl.org/source/openssl-1.0.0a.tar.gz &a ...

  7. RabbitMQ系列之高可用集群

    为了实现高可用,我采用LVS+双节点RabbitMq , 架构图如下: 在RabbitMQ之前放了LVS, LVS 采用 rr 轮询算法 , 目的是将请求平均分配到两个真实节点,并配置5672端口监控 ...

  8. haproxy + rabbitmq + keepalived的高可用环境搭建

    一.rabbitmq的搭建:参考rabbimq的安装及集群设置 二.安装和配置haproxy 1.安装haproxyyum install haproxy 2.安装rsysloga. 检查rsyslo ...

  9. Rabbitmq+Nginx+keepalived高可用热备

    摘自: http://www.cnblogs.com/wangyichen/p/4917241.html 公司两台文件服务器要做高可用,避免单点故障,故采用keepalived实现,其中一台宕机,依靠 ...

  10. 快速掌握RabbitMQ(五)——搭建高可用的RabbitMQ集群

    RabbitMQ的集群是依赖erlang集群的,而erlang集群是通过.erlang.cookie文件进行通信认证的,所以我们使用RabbitMQ集群时只需要配置一下.erlang.cookie文件 ...

随机推荐

  1. jenkins自动打包生成docker镜像后自动发布并nginx代理访问

    之前曾写过docker及jenkins基础使用  https://www.cnblogs.com/xiaochangwei/category/816943.html 现在搭建环境的功能为: 1.jen ...

  2. 201871010106-丁宣元 《面向对象程序设计(java)》第十五周学习总结

    201871010106-丁宣元 <面向对象程序设计(java)>第十五周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://home.cnblogs.com/u/nw ...

  3. 怎么在虚拟机下的Linux系统安装数据库

    1.查看 linux下是否有老版本的mysql(有删除) 查找old mysql:rpm -qa | grep mysql 卸载:卸载命令:rpm –ev {包名}——:rpm -ev mysql-c ...

  4. 残差residual VS 误差 error

    https://blog.csdn.net/jmydream/article/details/8764869 In statistics and optimization, statistical e ...

  5. git clean (11)

    #delete untracked files git clean -f # delete untracked files and directories git clean -fd # -n opt ...

  6. impala进阶

    一.impala存储 1.文件类型 2.压缩方式 二.impala分区 1.创建分区方式 partitioned by 创建表时,添加该字段指定分区列表: create table t_person( ...

  7. printkd

    #include <linux/fs.h> #include <asm/uaccess.h> #include <linux/namei.h> #include & ...

  8. 区间DP(超详细!!!)

    一.问题 给定长为n的序列a[i],每次可以将连续一段回文序列消去,消去后左右两边会接到一起,求最少消几次能消完整个序列,n≤500. f[i][j]表示消去区间[i,j]需要的最少次数. 则; 若a ...

  9. java do while 循环

    public class Sample { public static void main(String[] args) { ; do { System.out.print(num + " ...

  10. loj 6051 「雅礼集训 2017 Day11」PATH - 多项式 - 钩子公式

    题目传送门 传送门 设 $m = \sum_{i = 1}^{n} a_i$. 总方案数显然等于 $\frac{m!}{\prod_{i = 1}^{n} a_i!}$. 考虑这样一个网格图,第 $i ...