1. 程式人生 > >docker-compose配置rabbitmq叢集伺服器

docker-compose配置rabbitmq叢集伺服器

交流QQ號:555913397
有什麼問題可以加群大家一起交流

Docker安裝

安裝環境:Centos7

1.安裝docker

 yum install -y docker

2.配置阿里雲docker映象服務

在阿里雲容器映象服務裡有個映象加速器,在裡面可以得到私有的映象加速地址

下面編輯docker映象加速

vi /etc/docker/daemon.json

會得到如下內容

{}

下面來改造它

{
  "registry-mirrors": ["https://你的私有地址.mirror.aliyuncs.com"]
}

儲存檔案進行docker配置檔案過載

sudo
systemctl daemon-reload

3.配置docker開機啟動

systemctl enable docker.service

4.啟動docker

systemctl start docker.service

5.建立docker網絡卡

docker network create subnet=172.21.0.0/16 rabbitmqnet

安裝docker-conpose

curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m`
-o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose

完成後就可以使用docker-compose了

使用配置rabbitmq叢集

1.編寫yml檔案

第一個叢集伺服器yml配置-ram儲存模式

version: '3.6'
networks:
 rabbit:
  external:
   name: rabbitmqnet
services:
 rabbitmq:
  image: rabbitmq:management
  ports:
   - "4369:4369"
   - "5671:5671"
- "25672:25672" - "5672:5672" - "15672:15672" container_name: rabbitmq1 hostname: rabbitmq1 networks: - rabbit environment: RABBITMQ_NODENAME: rabbitmq1 RABBITMQ_ERLANG_COOKIE: CURIOAPPLICATION volumes: - ./rabbitmq.sh:/home/rabbitmq.sh

第二個叢集伺服器配置-ram儲存模式

version: '3.6'
networks:
 rabbit:
  external:
   name: rabbitmqnet
services:
 rabbitmq2:
  image: rabbitmq:management
  ports:
   - "4369:4369"
   - "5671:5671"
   - "25672:25672"
   - "5672:5672"
   - "15672:15672"
  container_name: rabbitmq2
  hostname: rabbitmq2
  networks:
   - rabbit
  environment:
   RABBITMQ_NODENAME: rabbitmq2
   RABBITMQ_ERLANG_COOKIE: CURIOAPPLICATION
  volumes:
   - ./rabbitmq.sh:/home/rabbitmq.sh

第三個叢集伺服器配置-disk儲存模式

version: '3.6'
networks:
 rabbit:
  external:
   name: rabbitmqnet
services:
 rabbitmq3:
  image: rabbitmq:management
  ports:
   - "4369:4369"
   - "5671:5671"
   - "25672:25672"
   - "5672:5672"
   - "15672:15672"
  container_name: rabbitmq3
  hostname: rabbitmq3
  networks:
   - rabbit
  environment:
   RABBITMQ_NODENAME: rabbitmq3
   RABBITMQ_ERLANG_COOKIE: CURIOAPPLICATION

如果是配置在同一臺宿主伺服器這三個檔案可以寫在一個檔案裡,直接生成三臺叢集伺服器.

2.shell檔案

如果想用ram儲存就用第一個shell檔案,用硬碟儲存就用第二個shell檔案

ram叢集伺服器shell檔案

rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbitmq3@rabbitmq3
rabbitmqctl start_app

disk叢集伺服器shell檔案

rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbitmq3@rabbitmq3
rabbitmqctl start_app

完成配置

1.生成容器

docker-compose -f rabbitmq1.yml -d up
docker-compose -f rabbitmq2.yml -d up
docker-compose -f rabbitmq2.yml -d up

2.進入容器執行shell檔案完成叢集連線

chmow +x /home/rabbitmq.sh
./home/rabbitmq.sh

這樣就完成了rabbitmq叢集伺服器的配置,超級簡單吧!

以下是經常遇到的問題,百度來的,下面的內容來自 醇氧 的CSDN 部落格

問題一:
這裡寫圖片描述

sudo rabbitmqctl join_cluster --ram [email protected]
Clustering node [email protected] with [email protected]
Error: unable to connect to nodes [email protected]]: nodedown

DIAGNOSTICS
===========
attempted to contact: [[email protected]]
[email protected]:
  * unable to connect to epmd (port 4369) on rabbitmq-node1: nxdomain (non-existing domain)
current node details:
- node name: 'rabbitmqctl-526rabbitmq-node1'
- home dir: /var/lib/rabbitmq
- cookie hash: 50YO3zK+HJHos0tab1vHjg==

解決之道:
叢集節點間需能互相訪問,故每個叢集節點的hosts檔案應包含叢集內所有節點的資訊以保證互相解析

vim /etc/hosts
1 IP    [email protected]
2 IP    [email protected]
3 IP    [email protected]

之後重啟各節點中的rabbitmq

問題二:

cluster搭建起來後若在web管理工具中rabbitmq_management的Overview的Nodes部

“Node statistics not available”

說明在該節點上web管理外掛還未啟用。

直接在顯示提示資訊的節點上執行

 rabbitmq-plugins enable rabbitmq_management
Error: mnesia_unexpectedly_running

原因:忘記先停止stop_app
解決:

rabbitmqctl stop_app

問題三:

這裡寫圖片描述

[[email protected] ~]$ sudo rabbitmqctl start_app
Starting node [email protected] ...
BOOT FAILED
===========
Error description:
   {error,{inconsistent_cluster,"Node [email protected]  thinks it's clustered with node [email protected], but [email protected] disagrees"}}
Log files (may contain more information):
   /var/log/rabbitmq/[email protected]
   /var/log/rabbitmq/[email protected]
Stack trace:
   [{rabbit_mnesia,check_cluster_consistency,0},
    {rabbit,'-start/0-fun-0-',0},
    {rabbit,start_it,1},
    {rpc,'-handle_call_call/6-fun-0-',5}]
Error: {rabbit,failure_during_boot,
           {error,
               {inconsistent_cluster,
                   "Node [email protected] thinks it's clustered with node [email protected], but [email protected] disagrees"}}}

需要重置一下

[[email protected]~]$  rabbitmqctl reset
Resetting node [email protected] ...
[[email protected]~]$ rabbitmqctl start_app
Starting node [email protected] ...

問題四:

這裡寫圖片描述

[[email protected] mnesia]# rabbitmqctl join_cluster [email protected]
Clustering node '[email protected]' with '[email protected]' ...
Error: {corrupt_or_missing_cluster_files,{error,enoent},{error,enoent}}

相關推薦

docker-compose配置rabbitmq叢集伺服器

交流QQ號:555913397 有什麼問題可以加群大家一起交流 Docker安裝 安裝環境:Centos7 1.安裝docker yum install -y docker 2.配置阿里雲docker映象服務 在阿里雲容器映象服務裡有個映象加速器,在裡

使用Docker-Compose搭建Rabbitmq叢集

1.使用映象搭建叢集,docker-compose.xml配置見下面的github具體配置 2.如果需要跨伺服器,參考 具體變更如下: 說完埠,下面提供一個三節點的docker-compose檔案。 rabbit1(10.106.136.7) 1

docker-compose安裝rabbitmq 叢集和管理工具

單機版 rabbit1: image: rabbitmq:management hostname: rabbit1 ports: - "4369:4369" - "56

Spring Boot專案配置RabbitMQ叢集

//具體參看了配置的原始碼 org.springframework.boot.autoconfigure.amqp.RabbitProperties //RabbitMQ單機 spring:   rabbitmq:     host: localh

搭建配置rabbitmq叢集過程

由於公司很早就搭建了mq的環境,測試環境單節點單例項,最近頻繁出問題,包括落盤檔案過多導致磁碟爆滿等,所以決定將中介軟體伺服器做成叢集模式,為保證遷移後順暢使用,都是使用的跟之前一樣的老版本。 安裝erlang環境 tar -xvf otp_src_17.3.tar.gz mkdir /us

docker簡易搭建RabbitMQ叢集

寫在前面:rabbitmq叢集與其他叢集有些不同,rabbitmq叢集同步的指是複製佇列,元資料資訊的同步,即同步的是資料儲存資訊;訊息的存放只會儲存在建立該訊息佇列的那個節點上。並非在節點上都儲存一個完整的資料。在通過非資料所在節點獲取資料時,通過元資料資訊,路由轉發到儲存資料節點上,從而

使用docker-compose建立spark叢集

下載docker映象 sudo docker pull sequenceiq/spark:1.6.0 建立docker-compose.yml檔案 建立一個目錄,比如就叫 docker-spark,然後在其下建立docker-compose.yml檔案,內容如下: ver

使用docker-compose建立hadoop叢集

下載docker映象 首先下載需要使用的五個docker映象 docker pull bde2020/hadoop-namenode:1.1.0-hadoop2.7.1-java8 docker pull bde2020/hadoop-datanode:1.1.0-hadoop2

docker-compose 配置

本文介紹compose配置檔案引數的使用,熟練編寫compose檔案 [[email protected] lnmp]# cat lnmp.yaml version: '3' services: nginx: build: /root/docker

docker-compose安裝elasticsearch叢集

檔案目錄: 1、編寫docker-compose檔案 version: '3' services: es-master: image: elasticsearch:6.4.3 container_name: es-master restart

手寫redis的docker文件,通過docker-compose配置redis

版本號 chown 位置 res docker try poi 監聽端口 執行權 在前面一遍隨筆,配置的是mysql主從的docker-compose配置。今天我們來學習配置編排容器redis。 準備環境: docker 18.06.1-ce docker-compo

docker-compose安裝kafka叢集及管理監控工具

編寫docker-compose檔案配置zk 和kafka叢集 #vim kafka.yml version: '2'services:    zoo1:        image: zooke

1分鐘,通過docker-compose 搭建zookeeper 叢集

一、建立三節點 zookeeper 叢集 將 docker-compose.yml 儲存到當前命令列目錄下 docker-compose.yml 檔案 version: '2' networks: zk: services: zookeeper1: image: zook

docker-compose 配置自定義網路和靜態 ip 示例

version: '3.1' services: web: image: haojiliang/nginx-php-fpm-alpine:v1.15.7 container_name: "web_container" ports: - "80:80"

Docker配置redis叢集高可用

Docker下Redis叢集搭建 注:本文中紅色字型為命令 藍色字型為指令碼內容 綠色字型為備註 一:建立redis映象 1:mkdir docker_redis_cluster   cd docker_redis_cluster   wget http://d

docker-compose 配置 容器 訪問本地網路

建立一個外部網路 docker network create outside 配置如下: version: '3.3' services: php: build: ./docker/php working_dir: /data volumes:

利用 docker-compose 配置 php 開發環境

記錄一次利用 docker-compose 搭建開發環境過程,避免重複配置 安裝 docker 與 docker-compose docker 在 win 和 macOS 都有安裝包,linux 根據版本和官網教程可以安裝。 docker-compose 安裝參照官方教程。

Docker-compose配置檔案詳解

原文連結:http://ju.outofmemory.cn/entry/287017 基本介紹 Compose 檔案是一個 YAML , 主要定義了 services, networks 和 volumes , 其預設路徑是./docker-compose.yml。

使用docker-compose快速構建叢集示例(一)

一、zookeeper叢集 docker-compose檔案: version: '3.1' services: zoo1: image: zookeeper hostname: zoo1 container_name: zoo1

Docker Compose 配置檔案 Docker-Compose.yml 檔案詳解

先來看一份 docker-compose.yml 檔案,不用管這是幹嘛的,只是有個格式方便後文解說: version: '2' services: web: image: dockercloud/hello-world ports: - 80