기사 디렉토리
고정 표시기 - 클러스터 rabbitmq를 구축
(1) 우선, 인상 미러 rabbitmq
우리는 예를 들어, 3.8.2 버전이
docker pull rabbitmq:3.8.2-management
2, 예 3 다음은 rabbitmq을 실행
# 运行镜像,集群模式
docker run \
--name rabbitmq-1 \
--hostname=rabbitmq-1 \
--restart=always \
-d \
-e RABBITMQ_DEFAULT_USER=rabbitmq \
-e RABBITMQ_DEFAULT_PASS=OnlinezuozuoCreated.rabbitmq.test.password \
-e RABBITMQ_ERLANG_COOKIE='oNYE40jp2YbuXfWKd9vFu1VZiic8' \
-v /etc/docker/volume/rabbitmqcluster/rabbitmq-1:/var/lib/rabbitmq \
-p 52001:5672 \
-p 52002:15672 \
rabbitmq:3.8.2-management
docker run \
--name rabbitmq-2 \
--hostname=rabbitmq-2 \
--restart=always \
--link rabbitmq-1:rabbitmq-1 \
-d \
-e RABBITMQ_DEFAULT_USER=rabbitmq \
-e RABBITMQ_DEFAULT_PASS=OnlinezuozuoCreated.rabbitmq.test.password \
-e RABBITMQ_ERLANG_COOKIE='oNYE40jp2YbuXfWKd9vFu1VZiic8' \
-v /etc/docker/volume/rabbitmqcluster/rabbitmq-2:/var/lib/rabbitmq \
-p 52301:5672 \
-p 52302:15672 \
rabbitmq:3.8.2-management
docker run \
--name rabbitmq-3 \
--hostname=rabbitmq-3 \
--restart=always \
--link rabbitmq-1:rabbitmq-1 \
--link rabbitmq-2:rabbitmq-2 \
-d \
-e RABBITMQ_DEFAULT_USER=rabbitmq \
-e RABBITMQ_DEFAULT_PASS=OnlinezuozuoCreated.rabbitmq.test.password \
-e RABBITMQ_ERLANG_COOKIE='oNYE40jp2YbuXfWKd9vFu1VZiic8' \
-v /etc/docker/volume/rabbitmqcluster/rabbitmq-3:/var/lib/rabbitmq \
-p 52501:5672 \
-p 52502:15672 \
rabbitmq:3.8.2-management
RABBITMQ_ERLANG_COOKIE
클러스터 연결 문자열 통신 rabbitmq 클러스터가 일치해야합니다
--link rabbitmq-1:rabbitmq-1 \
우리는 그들이 통신 할 수 있도록하는 것이, 예 2 세에 의해 연결되어
3, 우리는 클러스터를 구축하고, 동기화 시간대
하나 다음 명령 한 첫 번째 인스턴스에 및 실행
docker exec -it rabbitmq-1 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime &&
echo "Asia/Shanghai" >/etc/timezone
date "+%Y-%m-%d %H:%M:%S" ## 显示设置后,新的系统时间
exit
하나 숫자 두 인스턴스 하나를 입력하고 다음 명령을 실행
docker exec -it rabbitmq-2 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbit@rabbitmq-1
rabbitmqctl start_app
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime &&
echo "Asia/Shanghai" >/etc/timezone
date "+%Y-%m-%d %H:%M:%S" ## 显示设置后,新的系统时间
exit
실시 예 III 입력과의 명령을 실행할
docker exec -it rabbitmq-3 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbit@rabbitmq-1
rabbitmqctl start_app
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime &&
echo "Asia/Shanghai" >/etc/timezone
date "+%Y-%m-%d %H:%M:%S" ## 显示设置后,新的系统时间
exit
네, 어떻게 용기를 삭제하려면
당신이 시작하지 못했습니다 만남 또는 포트 직업, 등, 우리가 용기를 중지하고 컨테이너를 제거 할 수 있습니다, 다시 생성
docker container stop rabbitmq-1
docker container rm rabbitmq-1
docker container stop rabbitmq-2
docker container rm rabbitmq-2
docker container stop rabbitmq-3
docker container rm rabbitmq-3
(5)는, 동작 상태 검출하는 방화벽 포트 제어 포트를 열거 나 출시
액세스하여
에 http : // localhost를 : 52,101 /
에 http : // localhost를 : 52,301 /
에 http : // localhost를 : 52,501 /
스크립트에 정의 된 위의 정상 착륙, 계정의 계좌 번호와 비밀번호를 확인
그리고 클러스터 상태가 양호한를 참조하십시오.
6 Nginx에 의해로드 밸런싱
nginx를 부하 관리 페이지를 높이기 위해 균형
upstream rabbitmq {
server localhost:52002 weight=1 max_fails=2 fail_timeout=10s;
server localhost:52302 weight=1 max_fails=2 fail_timeout=10s;
server localhost:52502 weight=1 max_fails=2 fail_timeout=10s;
}
location /
{
proxy_pass http://rabbitmq;
proxy_set_header Host rabbitmq;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
add_header X-Cache $upstream_cache_status;
#Set Nginx Cache
add_header Cache-Control no-cache;
expires 12h;
}
이러한 방법으로, 우리는, 부하는 프록시 액세스를 반대로 nginx를 스루 액세스를 콘솔의 균형을 수
연결 포트로드 밸런싱을 증가 Nginx에
stream{
upstream rabbitmq {
server localhost:52001 weight=1 max_fails=2 fail_timeout=10s;
server localhost:52301 weight=1 max_fails=2 fail_timeout=10s;
server localhost:52501 weight=1 max_fails=2 fail_timeout=10s;
}
server{
listen 52701;
proxy_connect_timeout 20s;
proxy_pass rabbitmq;
}
}
이러한 방법으로, 우리는 nginx를 리버스 프록시를 통해 액세스 데이터 연결을로드 밸런싱을 수행 할 수 있습니다