使用docker 搭建rabbitmq 集羣

前言

以前幾篇文章簡要的介紹了一下rabbitmq的使用場景和特性,可是對rabbitmq的集羣和網絡分區這塊沒有說起到。本文主要介紹一下rabbitmq 集羣的搭建過程,包括相應的命令使用,關於rabbitmq的網絡分區,後面再總結。git

本篇文章要點:docker

  • docker 使用簡單介紹
  • 使用docker 搭建rabbitmq 集羣

docker 使用簡單介紹:

  • 問:什麼是docker?
  • 答: docker 是容器化技術的一種實現,它是一個輕量級、便攜式、與外界隔離的容器,也是一個能夠在容器中很方便地構建、傳輸、運行應用的引擎。和傳統的虛擬化技術不一樣的是,Docker 引擎並不虛擬出一臺虛擬機,而是直接使用宿主機的內核和硬件,直接在宿主機上運行容器內應用。

  • docker 主要用來解決什麼問題?bash

    docker 主要經過將程序和運行環境打包到一塊兒,解決部署的環境依賴問題,真正作到跨平臺的分發與使用。cookie

  • docker 經常使用概念介紹:
    docker 容器: docker 容器從形態上看是運行在虛擬機上的一個進程,該進程加入了資源的隔離和限制。網絡

    docker 鏡像:相比容器而言,docker鏡像是一個相對靜態的概念,能夠看作是容器對應的文件系統。app

    容器和鏡像時能夠相互轉換的:運維

docker 鏡像倉庫:存儲docker 鏡像的地方,能夠與maven的倉庫作類比。maven

  • docker 的常見操做:
    docker info : 查看docker 運行狀態以及版本相關信息的概念,是整個docker daemon 守護進程運行情況的縮影,包括容器個數,鏡像個數,daemon 版本,使用的存儲驅動等信息。 docker pull :從docker 鏡像倉庫拉取鏡像
    docker push: 提交鏡像到鏡像倉庫 (和git的操做命令很相似)
    docker ps :查看容器(運行的docker進程)
    docker run :運行docker 鏡像
    docker start/stop: 啓停docker 容器 docker build :構建Docker鏡像 docker tag:給鏡像打標籤 docker exec :在docker 容器類執行命令ui

    關於每一個命令的相關參數和選項有不少的資料對這塊作介紹,這裏就不囉嗦了。spa

    固然針對docker 還有不少知識,好比dockerfile 的相關指令,docker 網絡類型,存儲驅動類型,docker compose ,docker swarm 等等偏運維的知識點特別多,後續在對docker 的實踐總結中再細說。

    docker 搭建rabbitmq 集羣:

    • docker 安裝運行rabbitmq;
    • 加入rabbitmq節點到集羣

docker 安裝運行rabbitmq:

docker run -d --hostname rabbit1 --name myrabbit1 -p 15672:15672 -p 5672:5672 -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' rabbitmq

docker run -d --hostname rabbit2 --name myrabbit2 -p 5673:5672 --link myrabbit1:rabbit1 -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' rabbitmq

docker run -d --hostname rabbit3 --name myrabbit3 -p 5674:5672 --link myrabbit1:rabbit1 --link myrabbit2:rabbit2 -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' rabbitmq
複製代碼

注意:RABBITMQ_ERLANG_COOKIE 集羣中不一樣節點的erlang cookie值要相同

加入rabbitmq 到集羣:

設置節點1:
 docker exec -it myrabbit1 bash rabbitmqctl stop_app 
 rabbitmqctl reset
 rabbitmqctl start_app
 
 設置節點2:
 docker exec -it myrabbit2 bash 
 rabbitmqctl stop_app 
 rabbitmqctl reset 
 rabbitmqctl join_cluster --ram rabbit@rabbit1 
 rabbitmqctl start_app
 
 設置節點3:
 docker exec -it myrabbit2 bash 
 rabbitmqctl stop_app 
 rabbitmqctl reset 
 rabbitmqctl join_cluster --ram rabbit@rabbit1 
 rabbitmqctl start_app
複製代碼

設置好以後,使用http://物理機ip:15672 進行訪問了,默認帳號密碼是guest/guest 啓動了3個節點,1個磁盤節點和2個內存節點。

##總結 本文只是簡單的介紹了一下經過docker搭建一個簡單的集羣的相關步驟和命令。關於rabbitmq網絡分區的相關機制,後續文章再進一步介紹。

相關文章
相關標籤/搜索