乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      使用Docker部署RabbitMQ集群

       黃爸爸好 2019-02-13

      概述

      本文重點(diǎn)介紹的Docker的使用,以及如何部署RabbitMQ集群,最基礎(chǔ)的Docker安裝,本文不做過(guò)多的描述,讀者可以自行度娘。

      Windows10上Docker的安裝

      因?yàn)楸救擞玫氖荳indows系統(tǒng),所有推薦一個(gè)不錯(cuò)的安裝文章,詳見:

      https://blog.csdn.net/xiaoping0915/article/details/75094857

      注意:設(shè)置阿里云Docker Hub加速,配置Registry mirrors地址

      “https://j0andt2p.mirror./”。

      阿里云的鏡像市場(chǎng):

      https://dev.aliyun.com/search.html

      下載RabbitMQ鏡像

      1.鏡像地址

      RabbitMQ Docker官方認(rèn)證鏡像地址:

      https://dev.aliyun.com/detail.html?spm=5176.1971733.2.16.6c045aaaDxFoMn&repoId=1256

      2.安裝命令

      安裝之前,切記把Docker Hub設(shè)置為阿里云的加速,方便安裝。

      docker pull rabbitmq:3.6.15-management

      注意使用后綴為'-management'的鏡像版本,是包含網(wǎng)頁(yè)控制臺(tái)的。

      3.查看安裝

      使用命令:docker images查看下載的鏡像,如下圖所示:

      Docker常用命令

      容器停止:docker stop 容器名稱

      啟動(dòng)容器:docker start 容器名稱

      刪除容器:docker rm 容器名稱

      刪除鏡像:docker rmi 鏡像名稱

      查看運(yùn)行的所有容器:docker ps

      查看所有容器:docker ps -a

      容器復(fù)制文件到物理機(jī):docker cp 容器名稱:容器目錄 物理機(jī)目錄

      物理機(jī)復(fù)制文件到容器:docker cp 物理機(jī)目錄 容器名稱:容器目錄

      進(jìn)入Docker目錄

      簡(jiǎn)單的進(jìn)入Docker容器的方法分為3種:

      1. 使用attach

      2. 使用SSH

      3. 使用exec

      1.attach

      attach有一個(gè)缺點(diǎn),當(dāng)連接終止的時(shí)候,或者使用exit之后,容器就會(huì)退出后臺(tái)運(yùn)行,所以不適合生產(chǎn)環(huán)境使用。既然不好用,我們?cè)谶@里就不過(guò)多的介紹它了。

      2.SSH

      按照之前我們使用liunx的習(xí)慣,使用ssh連接服務(wù)器似乎是一個(gè)很誘人的答案,但這樣做并不優(yōu)雅,也不是最佳的實(shí)踐方式,詳情點(diǎn)擊查看:https://blog.csdn.net/bolg_hero/article/details/50267103

      3.exec

      exec無(wú)疑是我們現(xiàn)階段最好的實(shí)踐方案,一起來(lái)看它是怎么使用的。

      進(jìn)入docker命令:

      docker exec -it /bin/bash

      其中/bin/bash 也可能是/bin/sh.

      使用docker exec --help查看更多命令,和命令說(shuō)明。

      退出docker:

      exit

      啟動(dòng)RabbitMQ

      docker run -d --hostname localhost --name myrabbit -p 15672:15672 -p 5672:5672 rabbitmq:3.6.15-management

      參數(shù)說(shuō)明:

      • -d 后臺(tái)進(jìn)程運(yùn)行

      • hostname RabbitMQ主機(jī)名稱

      • name 容器名稱

      • -p port:port 本地端口:容器端口

      • -p 15672:15672 http訪問(wèn)端口

      • -p 5672:5672 amqp訪問(wèn)端口

      啟動(dòng)完成之后,使用:docker ps 查看程序運(yùn)行情況。

      使用:http://宿主ip:15672 訪問(wèn),用戶名密碼使用默認(rèn):guest/guest.

      啟動(dòng)多個(gè)RabbitMQ

      • docker run -d --hostname localhost --name myrabbit -p 15672:15672 -p 5672:5672 rabbitmq:3.6.15-management

      • docker run -d --hostname localhost2 --name myrabbit2 -p 15673:15672 -p 5673:5672 rabbitmq:3.6.15-management

      這樣我們就可以使用,http://宿主ip:15672 和 http://宿主ip:15673 進(jìn)行訪問(wèn)了,默認(rèn)賬號(hào)密碼依舊是guest/guest.

      搭建RabbitMQ集群

      步驟一:安裝RabbitMQ;

      步驟二:加入RabbitMQ節(jié)點(diǎn)到集群;

      步驟一:安裝RabbitMQ;

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

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

      docker run -d --hostname rabbit3 --name myrabbit3 -p 5674:5672 --link myrabbit1:rabbit1 --link myrabbit2:rabbit2 -e RABBITMQERLANGCOOKIE='rabbitcookie' rabbitmq:3.6.15-management

      具體的參數(shù)含義,參見上文“啟動(dòng)RabbitMQ”部分。

      注意點(diǎn):

      1. 多個(gè)容器之間使用“--link”連接,此屬性不能少;

      2. Erlang Cookie值必須相同,也就是RABBITMQERLANGCOOKIE參數(shù)的值必須相同,原因見下文“配置相同Erlang Cookie”部分;

      步驟二:加入RabbitMQ節(jié)點(diǎn)到集群

      設(shè)置節(jié)點(diǎn)1:

      docker exec -it myrabbit1 bash rabbitmqctl stopapp rabbitmqctl reset rabbitmqctl startapp exit

      設(shè)置節(jié)點(diǎn)2,加入到集群:

      docker exec -it myrabbit2 bash rabbitmqctl stopapp rabbitmqctl reset rabbitmqctl joincluster --ram rabbit@rabbit1 rabbitmqctl start_app exit

      參數(shù)“--ram”表示設(shè)置為內(nèi)存節(jié)點(diǎn),忽略次參數(shù)默認(rèn)為磁盤節(jié)點(diǎn)。

      設(shè)置節(jié)點(diǎn)3,加入到集群:

      docker exec -it myrabbit3 bash rabbitmqctl stopapp rabbitmqctl reset rabbitmqctl joincluster --ram rabbit@rabbit1 rabbitmqctl start_app exit

      設(shè)置好之后,使用http://物理機(jī)ip:15672 進(jìn)行訪問(wèn)了,默認(rèn)賬號(hào)密碼是guest/guest,效果如下圖:

      啟動(dòng)了3個(gè)節(jié)點(diǎn),1個(gè)磁盤節(jié)點(diǎn)和2個(gè)內(nèi)存節(jié)點(diǎn)。

      配置相同Erlang Cookie

      有些特殊的情況,比如已經(jīng)運(yùn)行了一段時(shí)間的幾個(gè)單個(gè)物理機(jī),我們?cè)谥皼](méi)有設(shè)置過(guò)相同的Erlang Cookie值,現(xiàn)在我們要把單個(gè)的物理機(jī)部署成集群,實(shí)現(xiàn)我們需要同步Erlang的Cookie值。

      1.為什么要配置相同的erlang cookie?

      因?yàn)镽abbitMQ是用Erlang實(shí)現(xiàn)的,Erlang Cookie相當(dāng)于不同節(jié)點(diǎn)之間相互通訊的秘鑰,Erlang節(jié)點(diǎn)通過(guò)交換Erlang Cookie獲得認(rèn)證。

      2.Erlang Cookie的位置

      要想知道Erlang Cookie位置,首先要取得RabbitMQ啟動(dòng)日志里面的home dir路徑,作為根路徑。使用:“docker logs 容器名稱”查看,如下圖:

      所以Erlang Cookie的全部路徑就是“/var/lib/rabbitmq/.erlang.cookie”。

      注意:每個(gè)人的erlang cookie位置可能不同,一定要查看自己的home dir路徑。

      3.復(fù)制Erlang Cookie到其他RabbitMQ節(jié)點(diǎn)

      獲取到第一個(gè)RabbitMQ的Erlang Cookie之后,只需要把這個(gè)文件復(fù)制到其他RabbitMQ節(jié)點(diǎn)即可。

      物理機(jī)和容器之間復(fù)制命令如下:

      • 容器復(fù)制文件到物理機(jī):docker cp 容器名稱:容器目錄 物理機(jī)目錄

      • 物理機(jī)復(fù)制文件到容器:docker cp 物理機(jī)目錄 容器名稱:容器目錄

      設(shè)置Erlang Cookie文件權(quán)限:

      “chmod 600 /var/lib/rabbitmq/.erlang.cookie”。

      參考資料

      https://blog.csdn.net/xiaoping0915/article/details/75094857

      https://blog.csdn.net/luosai19910103/article/details/78604692

      https://blog.csdn.net/bolg_hero/article/details/50267103

      http:///2017/03/06/rabbitmq-cluster/


        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多