docker 运行 rocketMq

1. 源码下载编译

https://github.com/apache/rocketmq

下载后配置maven jdk8+

drwxr-xr-x. 23 root root    4096 9月  13 22:29 rocketmq-rocketmq-all-4.7.1
-rw-r--r--.  1 root root 3526703 9月  13 22:25 rocketmq-rocketmq-all-4.7.1.zip

进入 rocketmq-rocketmq-all-4.7.1执行编译

mvn -Prelease-all -DskipTests clean install -U

编译完成后在 rocketmq-rocketmq-all-4.7.1/distribution/target 有 rocketmq-4.7.1文件夹 复制到安装目录即可

drwxr-xr-x. 2 root root        6 9月  13 22:32 archive-tmp
-rw-r--r--. 1 root root       87 9月  13 22:34 checkstyle-cachefile
-rw-r--r--. 1 root root     6066 9月  13 22:34 checkstyle-checker.xml
-rw-r--r--. 1 root root       83 9月  13 22:34 checkstyle-result.xml
drwxr-xr-x. 3 root root       22 9月  13 22:32 maven-shared-archive-resources
drwxr-xr-x. 3 root root       82 9月  14 01:14 rocketmq-4.7.1
-rw-r--r--. 1 root root 13811118 9月  13 22:34 rocketmq-4.7.1.tar.gz
-rw-r--r--. 1 root root 13852748 9月  13 22:34 rocketmq-4.7.1.zip

2. RocketMqNameServer

2.1. 构建docker镜像

2.1.1. Dockerfile

FROM lol155/centos-jdk
LABEL name=lol155 desc=rocketmq-namesrv-test version=4.7.1
COPY rocketmq-4.7.1 /opt/rocketmq-4.7.1
EXPOSE 9876
ENV NAMESRV_ADDR=localhost:9876
WORKDIR /opt/rocketmq-4.7.1
CMD bin/mqnamesrv -n ${NAMESRV_ADDR}

2.1.2. build命令

docker build -t lol155/rocketmq-namesrv-test:4.7.1 .

2.2. 启动

docker run -d -p 9876:9876 -e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m" --name rmqserver lol155/rocketmq-namesrv-test:4.7.1

3. broker

3.1. 构建docker镜像

3.1.1. Dockerfile

FROM lol155/centos-jdk
LABEL name=lol155 desc=rocketmq-broker-test version=4.7.1
COPY rocketmq-4.7.1 /opt/rocketmq-4.7.1
WORKDIR /opt/rocketmq-4.7.1
EXPOSE 10909 10911 10912
ENV NAMESRV_ADDR=localhost:9876
ENV CONFIG_PATH=conf/broker.conf
CMD bin/mqbroker -n ${NAMESRV_ADDR} -c ${CONFIG_PATH} autoCreateTopicEnable=true

3.1.2. build命令

docker build -t lol155/rocketmq-broker-test:4.7.1 .

3.2. 启动

启动前创建 /etc/rmq/broker.conf

brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
brokerIP1=192.168.89.41  //这个是后加的需要改为部署机器IP

运行

docker run -d -p 10911:10911 -p 10909:10909\
 --name rmqbroker --link rmqserver:namesrv\
 -e "NAMESRV_ADDR=namesrv:9876" \
 -e "CONFIG_PATH=/opt/rocketmq-4.7.1/conf/broker.conf" \
 -e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m"\
 -v /etc/rmq/broker.conf:/opt/rocketmq-4.7.1/conf/broker.conf \
 lol155/rocketmq-broker-test:4.7.1

4. rocketmq console

https://github.com/apache/rocketmq-externals/tree/master/rocketmq-console

编译好或者直接下个jar包

4.1. Dockerfile

FROM lol155/centos-jdk
LABEL name=lol155 desc=rocketmq-console version=1.0.1
COPY rocketmq-console-ng-1.0.1.jar /opt/rocketmq-console-ng-1.0.1.jar
WORKDIR /opt
EXPOSE 8080
CMD java -jar ${JAVA_OPTS} rocketmq-console-ng-1.0.1.jar

4.2. 构建

docker build -t lol155/rocketmq-console:1.0.1 .

4.3. 运行

docker run --name rmqconsole -d \
 -p 9999:8080 \
 --link rmqserver:namesrv \
 -e "JAVA_OPTS=-Drocketmq.namesrv.addr=namesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false -Duser.timezone='Asia/Shanghai'" \
 -v /etc/localtime:/etc/localtime \
 -t lol155/rocketmq-console:1.0.1

5. 基本操作命令

5.1. MQAdmin

5.1.1. 创建Topic updateTopic

./mqadmin updateTopic -b localhost:10911 -t MyTopic

5.1.2. 删除Topic deleteTopic

./mqadmin deleteTopic -n localhost:9876 -c localhost:10911 -t MyTopic

5.1.3. Topic列表 topicList

./mqadmin topicList -n localhost:9876

5.1.4. Topic信息 topicStatus

./mqadmin topicStatus -n localhost:9876 -t MyTopic

5.1.5. Topic 路由信息 topicRoute

./mqadmin topicRoute -n localhost:9876 -t MyTopic

5.1.6. Broker状态信息 brokerStatus

./mqadmin brokerStatus -n localhost:9876 -b localhost:10911

5.1.7. Broker配置信息 brokerStatus

./mqadmin getBrokerConfig -n localhost:9876 -b localhost:10911

5.1.8. 性能测试

./mqadmin sendMsgStatus -n localhost:9876 -b broker-a -c 10
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值