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