1.增加负载均衡器

关于负载均衡器,商业的比如F5的BIG-IP,Radware的AppDirector,是硬件架构的产品,可以实现很高的处理能力。但这些产品昂贵的价格会让人止步,所以我们还有软件负载均衡方案。互联网公司常用的软件LB一般有LVS、HAProxy、Nginx等。LVS是一个内核层的产品,主要在第四层负责数据包转发,使用较复杂。HAProxy和Nginx是应用层的产品,但Nginx主要用于处理HTTP,所以这里选择HAProxy作为RabbitMQ前端的LB。HAProxy的安装使用非常简单,在Centos下直接yum install haproxy,然后更改/etc/haproxy/haproxy.cfg 文件即可,文件内容大概如下:

[plain] view plaincopy print?
  1. #---------------------------------------------------------------------
  2. # Global settings
  3. #---------------------------------------------------------------------
  4. global
  5. log         127.0.0.1 local2
  6. chroot      /var/lib/haproxy
  7. pidfile     /var/run/haproxy.pid
  8. maxconn     4000
  9. user        haproxy
  10. group       haproxy
  11. daemon
  12. # turn on stats unix socket
  13. stats socket /var/lib/haproxy/stats
  14. #---------------------------------------------------------------------
  15. # common defaults that all the 'listen' and 'backend' sections will
  16. # use if not designated in their block
  17. #---------------------------------------------------------------------
  18. defaults
  19. mode                    http
  20. log                     global
  21. option                  httplog
  22. option                  dontlognull
  23. option http-server-close
  24. option forwardfor       except 127.0.0.0/8
  25. option                  redispatch
  26. retries                 3
  27. timeout http-request    10s
  28. timeout queue           1m
  29. timeout connect         10s
  30. timeout client          1m
  31. timeout server          1m
  32. timeout http-keep-alive 10s
  33. timeout check           10s
  34. maxconn                 3000
  35. listen rabbitmq_cluster 0.0.0.0:5672
  36. mode tcp
  37. balance roundrobin
  38. server   rqslave1 192.168.36.102:5672 check inter 2000 rise 2 fall 3
  39. server   rqslave2 192.168.36.136:5672 check inter 2000 rise 2 fall 3
  40. #server   rqmaster 192.168.36.217:5672 check inter 2000 rise 2 fall 3

启动:service haproxy  start

负载均衡器会监听5672端口,轮询我们的两个内存节点192.168.36.102、192.168.36.136的5672端口,192.168.36.217为磁盘节点,只做备份不提供给生产者、消费者使用,当然如果我们服务器资源充足情况也可以配置多个磁盘节点,这样磁盘节点除了故障也不会影响,除非同时出故障。

2.配置策略

使用Rabbit镜像功能,需要基于rabbitmq策略来实现,策策是用来控制和修改群集范围的某个vhost队列行为和Exchange行为在cluster中任意节点启用策略,策略会自动同步到集群节点
# rabbitmqctl set_policy -p hrsystem ha-allqueue"^" '{"ha-mode":"all"}'
这行命令在vhost名称为hrsystem创建了一个策略,策略名称为ha-allqueue,策略模式为 all 即复制到所有节点,包含新增节点,
策略正则表达式为 “^” 表示所有匹配所有队列名称。
例如rabbitmqctl set_policy -p hrsystem ha-allqueue "^message" '{"ha-mode":"all"}'
注意:"^message" 这个规则要根据自己修改,这个是指同步"message"开头的队列名称,我们配置时使用的应用于所有队列,所以表达式为"^"

set_policy说明参见
set_policy [-p vhostpath] {name} {pattern} {definition} [priority]      #ha-mode:all、exactly、nodes

也可以通过rabbit控制台添加

下面我们来添加一个queues队列来看看效果,这里只是测试结果,其它的先不填写

在这里边添加的时候你是可以指定Node选项也就是把这个queues放在哪个node节点上.

3.创建队列时需要指定ha 参数,如果不指定x-ha-prolicy 的话将无法复制

4.客户端使用负载服务器192.168.36.127发送消息,队列会被复制到所有节点,当然策略也可以配置制定某几个节点,这时任何节点故障 、或者重启将不会影响我们正常使用某个队列,到这里我们完成了高可用配置(所有节点都宕机那没有办法了)。

5.使用rabbitmq管理端可以看到集群镜像模式中对列状态

参考官网:http://www.rabbitmq.com/ha.html

转载于:https://www.cnblogs.com/telwanggs/p/7124862.html

RabbitMQ学习之集群镜像模式配置相关推荐

  1. RabbitMQ学习之集群模式

    由于RabbitMQ是用erlang开发的,RabbitMQ完全依赖Erlang的Cluster,因为erlang天生就是一门分布式语言,集群非常方便,但其本身并不支持负载均衡.Erlang的集群中各 ...

  2. (转)RabbitMQ学习之集群部署

    http://blog.csdn.net/zhu_tianwei/article/details/40931971 我们先搭建一个普通集群模式,在这个模式基础上再配置镜像模式实现高可用,Rabbit集 ...

  3. RabbitMQ学习系列(六): RabbitMQ 高可用集群

    前面讲过一些RabbitMQ的安装和用法,也说了说RabbitMQ在一般的业务场景下如何使用.不知道的可以看我前面的博客,http://www.cnblogs.com/zhangweizhong/ca ...

  4. Linux中级实战专题篇:rabbitmq(消息中间件p2p模式和pub模式,消息队列rabbitmq详解,单机安装,集群部署以及配置实战)

    一.消息中间件相关概念 1.简介 消息中间件也可以称消息队列,是指用高效可靠的消息传递机制进行与平台相关 的数据交流,并基于数据通信来进行分布式系统的集成.通过提供消息传递和消息 队列模型,可以在分布 ...

  5. 学习笔记Hadoop(五)—— Hadoop集群的安装与部署(2)—— Hadoop集群部署模式、配置固定IP

    一.Hadoop集群部署模式 Hadoop的安装部署的模式一共有三种: 独立模式(本地模式) standalone 默认的模式,无需运行任何守护进程(daemon),所有程序都在单个JVM上执行.由于 ...

  6. 亲测可用,超详细RabbitMQ消息队列集群配置

    RabbitMQ是什么? MQ(Message Queue,消息队列)消息中间件,一般以集群方式部署,主要提供消息的接受和发送,实现各微服务之间的消息同步. 原理介绍 rabbitmq是依据erlan ...

  7. rabbitmq集群部署及配置

    rabbitmq集群部署及配置 文章目录 rabbitmq集群部署及配置 前言 一.原理介绍 二.部署方案 1.环境介绍 2.部署过程 小结 前言 消息中间件rabbitmq,一般以集群方式部署,主要 ...

  8. RabbitMQ 集群部署及配置

    文章目录 一.rabbitmq简述 Rabbitmq 有 3 种模式,但集群模式是 2 种 二.环境准备及软件安装 修改 hosts 文件 (3 台) 三.账号配置 四.启动 rabbitmq 内置 ...

  9. 消息队列专题(架构篇):RabbitMQ 的集群架构模式

    RabbitMQ 的集群架构模式主要有四种,分别是主备模式.远程模式.多活模式和镜像模式,本篇博客将依次介绍这四种架构模式,其中的镜像模式使用范围最广,我们将对其进行重点介绍. 主备模式 主备模式是指 ...

最新文章

  1. 苹果遭火速打脸:照片扫描AI被逆向工程,英特尔工程师发现漏洞
  2. JSONP的诞生、原理及应用实例
  3. JavaScript | 继承
  4. Android Studio 常见插件收藏
  5. 第十八篇 Linux环境下常用软件安装和使用指南
  6. web相关基础知识1
  7. 共同一作,会被认可吗?
  8. linux命令sort的用法,linux之sort命令的用法
  9. vue 父组件给子组件传值
  10. github仓库主页介绍
  11. Windows子系统(GUI)
  12. AD20笔记-元器件绘制
  13. 【Laravel】Laravel使用总结(一)
  14. Java Web之Servlet的三大常用作用域对象及其使用方法
  15. android adb命令唤醒屏幕,Android adb命令点亮屏幕说明
  16. linux 创建分区 4t,CentOS6.6添加两块4T硬盘过程记录
  17. Hi3516EV200图像调优
  18. Cenots Oracle11g设置开机自启动
  19. 【Energy Big Data】能源互联网和电力大数据
  20. java模拟器2.3 百度地图_百度地图集成

热门文章

  1. 路由到另外一个页面_如何在多个页面中,引入一个公共组件
  2. Akka之actor模型
  3. (3)QuartusII 封装网表文件(FPGA不积跬步101)
  4. (23)Verilog HDL条件语句:if-else语句
  5. FPGA ROM存储器设计
  6. 设备上的介质簇的结构不正确_环保设备选型参考系列——生化系统之潜水搅拌机【价格】...
  7. Linux-oled096驱动硬件分析
  8. 网络协议栈深入分析(四)--套接字内核初始化和创建过程
  9. (10)魔兽文件打包器里的传奇哈希表
  10. DECLARE_GLOBAL_DATA_PTR