Docker 아래에 RocketMQ 배치하기 (1)
RocketMQ는 분포식 메시지 대기열이기 때문에 각종 고성능, 고가용성 배치 방안이 있다.본고는 당분간 고성능과 고가용성 배치 방안을 고려하지 않는다.Docker를 사용하여 RocketMQ를 배포하는 경우이 문서는 Docker 단일 숙박 호스트에 배포됩니다.
rocketmq 원본 프로젝트에는 자체 프로젝트인 rocketmq-externals가 있고 docker 렌즈를 생성하는 프로젝트인 rocketmq-docker가 있습니다.https://github.com/apache/rocketmq-externals/tree/master/rocketmq-dockernameserver 및 서버에 대한 배치는 이 프로젝트의 Dockerfile을 기반으로 합니다.
nameserver 이미지 생성 스크립트
# Start from a Java image.
FROM java:8
ARG version
# Rocketmq version
ENV ROCKETMQ_VERSION 4.2.0
# Rocketmq home
ENV ROCKETMQ_HOME /opt/rocketmq-${ROCKETMQ_VERSION}
WORKDIR ${ROCKETMQ_HOME}
RUN mkdir -p \
/opt/logs \
/opt/store \
/opt/conf
# , rocketmq , 。
ADD rocketmq-all-4.2.0-bin-release.zip rocketmq.zip
RUN unzip rocketmq.zip \
&& rm rocketmq.zip
RUN chmod +x bin/mqnamesrv
CMD cd ${ROCKETMQ_HOME}/bin && export JAVA_OPT=" -Duser.home=/opt" && sh mqnamesrv
EXPOSE 9876
VOLUME /opt/logs \
/opt/store \
/opt/conf
브로커 렌즈 생성 스크립트
FROM java:8
# Rocketmq version
ENV ROCKETMQ_VERSION 4.2.0
# Rocketmq home
ENV ROCKETMQ_HOME /opt/rocketmq-${ROCKETMQ_VERSION}
WORKDIR ${ROCKETMQ_HOME}
RUN mkdir -p \
/opt/logs \
/opt/store
ADD rocketmq-all-4.2.0-bin-release.zip rocketmq.zip
RUN unzip rocketmq.zip \
&& rm rocketmq.zip
RUN chmod +x bin/mqbroker
CMD cd ${ROCKETMQ_HOME}/bin && export JAVA_OPT=" -Duser.home=/opt" && sh mqbroker -n namesrv:9876
EXPOSE 10909 10911
VOLUME /opt/logs \
/opt/store
console 미러 생성 스크립트
Apache에서 소스를 시작한 후 콘솔의 코드 관리 주소입니다.https://github.com/apache/incubator-rocketmq-externals/tree/master/rocketmq-console엔지니어링 소스 코드 컴파일을 바탕으로 엔지니어링 패키지 rocketmq-console-ng-1.0.0을 생성합니다.jar (이 프로젝트는spring-boot 프로젝트입니다.jar에 servlet 용기가 내장되어 있습니다.)
FROM java:8
VOLUME /tmp
ADD rocketmq-console-ng-1.0.0.jar app.jar
RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -jar /app.jar" ]
프로덕션 및 메시징 미러링
이 두 개의 거울은 비교적 간단하다. 공정 자체는main으로 실행되는java공정이다.이 기사를 참조하십시오.https://blog.csdn.net/liulianglin/article/details/51787459
FROM java:8
VOLUME /tmp
#ADD mq-consumer.jar app.jar
ADD mq-producer.jar app.jar
RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -jar /app.jar" ]
docker-mopose
version: '2'
services:
namesrv:
image: going/rocketmq-namesrv:4.2.0
ports:
- 9876:9876
volumes:
- "E:/rocketmq/namesrv/master/logs:/opt/logs"
- "E:/rocketmq/namesrv/master/store:/opt/store"
broker:
image: going/rocketmq-broker:4.2.0
ports:
- 10909:10909
- 10911:10911
volumes:
- "E:/rocketmq/broker/master-1/logs:/opt/logs"
- "E:/rocketmq/broker/master-1/store:/opt/store"
links:
- namesrv:namesrv
console:
image: styletang/rocketmq-console-ng:latest
ports:
- "8080:8080"
links:
- namesrv:namesrv
environment:
JAVA_OPTS: -Drocketmq.config.namesrvAddr=namesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false
producer:
image: going/rocketmq-producer:4.1.0
links:
- namesrv:namesrv
consumer:
image: going/rocketmq-consumer:4.1.0
links:
- namesrv:namesrv
docker-compose 실행을 통해 console 인터페이스를 열고 실행 상황을 보기http://127.0.0.1:8080/#/
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.