RabbitMQ-Java-09-集群搭建

csdn_yasin 2022-01-07 11:12:07 阅读数:248

rabbitmq-java-09- rabbitmq java 集群 搭建

說明

  • RabbitMQ-Java-09-集群搭建
  • 官方文檔已包含絕大多數本案例內容。請移步:https://docs.spring.io/spring-amqp/docs/current/reference/html/

核心概念

》集群搭建說明

  • 集群搭建是為了解决什麼問題呢?
    • 大量消息情况下性能問題
  • 注意點有哪些呢?
    • 每個node(機器)需要設置正確的host(hostname、hosts),保證通過host能互相連通。
    • 所有加入集群的node地比特相等,新加入node只需要連接任意一個node都能加入到集群,任意一個node丟失都不會影響整個node。
    • 所有加入集群的node必須保證erlang.cookie與其他相同
  • 搭建集群後為什麼要配置鏡像隊列?
    • 默認搭建好集群,來一個消息會被隨機分配到其中一臺節點,一旦該節點宕機而該消息未被消費就會丟失,為了解决這個問題就需要配置鏡像隊列。
    • 鏡像隊列一般是備份兩份(主node、備node各一份),你也可以設置備份多份(最多不能超過所有node數量),但是這樣是大大的浪費,沒必要。
    • 配置備份兩份以後,當其中一個node宕機,會自動備份到其他node,保證數據永遠有兩份,即使剩下最後一臺節點也不會數據丟失,除非所有節點全部宕機。
    • 配置鏡像隊列必須配置好集群,單臺node是沒有鏡像隊列選項值的。
    • 配置完鏡像隊列就基本上可以保證消息不丟失了。

操作步驟

》准備環境

  • 准備三臺服務器(虛擬機),先准備一臺配置好RabbitMQ,如果是本地虛擬機的話其他兩臺用這一臺創建鏈接克隆,如此一來就不用分別配置了。

》開始搭建集群

》配置鏡像隊列

  • 啟動所有集群中的node,登陸任意一個node的RabbitMQ後臺
  • 配置策略policy:Admin -> Policies -> Add/update a policy
    • name:策略名字,隨便寫
    • Pattern:正則匹配規則,(比如^mirror=以mirror開頭)
    • Apply to:應用到交換機還是隊列或全部
    • Priority:優先級,默認空即可
    • Definition:
      • ha-mode:備份模式,exactly=備份模式,指備份幾份
      • ha-params:備份的分數
      • ha-sync-mode:同步模式,automatic=自動
  • 策略說明
    - name:my-policy001
    - Pattern:^mirror
    - Apply to:
    - Priority:
    - Definition:
    - ha-mode:exactly
    - ha-params:2
    - ha-sync-mode:automatic
    

備注

  • 該教程部分內容收集自網絡,感謝原作者。

附錄

版权声明:本文为[csdn_yasin]所创,转载请带上原文链接,感谢。 https://gsmany.com/2022/01/202201071112066766.html