【docker部署单机版RocketMQ】

docker部署单机版RocketMQ

RocketMQ生产环境部署一般需要对namesrv、console做集群部署,对broker做基于Raft【4.5版以后官方支持】 的集群+主备。
本次仅为演示单机版docker安装部署。

1. 安装rocketmq-namesrv

docker pull registry.cn-hangzhou.aliyuncs.com/huiwen/rocketmq-namesrv:4.3.2 
docker tag registry.cn-hangzhou.aliyuncs.com/huiwen/rocketmq-namesrv:4.3.2 rocketmq-namesrv:4.3.2 
docker rmi registry.cn-hangzhou.aliyuncs.com/huiwen/rocketmq-namesrv:4.3.2
docker run -d --net=host --name rocketmq-namesrv --restart=always \
-e "JAVA_OPT_EXT=-server -Xms128m -Xmx512m" \
-v /etc/localtime:/etc/localtime:ro \
-v /home/rocketmq/logs/:/opt/logs/rocketmqlogs/ \
rocketmq-namesrv:4.3.2

2. 安装rocketmq-broker

docker pull registry.cn-hangzhou.aliyuncs.com/huiwen/rocketmq-broker:4.3.2 
docker tag registry.cn-hangzhou.aliyuncs.com/huiwen/rocketmq-broker:4.3.2 rocketmq-broker:4.3.2 
docker rmi registry.cn-hangzhou.aliyuncs.com/huiwen/rocketmq-broker:4.3.2

docker cp rocketmq-namesrv:/opt/rocketmq-4.3.2/conf /home/rocketmq/conf

2.1 修改配置文件

vi /home/rocketmq/conf/broker.conf

brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 96
brokerRole = ASYNC_MASTER
flushDiskType = SYNC_FLUSH
brokerIP1=192.168.100.149

2.2 创建容器

docker run -d --net=host --name rocketmq-broker --restart=always \
-v /etc/localtime:/etc/localtime:ro \
-v /home/rocketmq/logs/:/opt/logs/rocketmqlogs/ \
-v /home/rocketmq/data/:/opt/store/ \
-v /home/rocketmq/conf/broker.conf:/opt/rocketmq-4.3.2/conf/broker.conf \
-e "NAMESRV_ADDR=192.168.100.149:9876" \
-e "JAVA_OPT= -Duser.home=/opt" \
-e "JAVA_OPT_EXT=-server -Xms1024m -Xmx3072m -XX:MaxDirectMemorySize=3072m" \
rocketmq-broker:4.3.2 \
/opt/rocketmq-4.3.2/bin/mqbroker \
-c /opt/rocketmq-4.3.2/conf/broker.conf

3. 安装Rocketmq-console

这边为了配合之前的nginx统一管理,使用了Rocketmq-console-nginx,大家自己安装可以使用RocketMQ Dashboard

mkdir -p /home/rc/conf &&
mkdir -p /home/rc/logs

tee  /home/rc/conf/logback.xml <<-'EOF'
<?xml version="1.0" encoding="utf-8"?>
<configuration>  
  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">  
    <encoder charset="UTF-8">  
      <pattern>[%d{yyyy-MM-dd'T'HH:mm:ss.SSSZ}] %5p %m%n</pattern>  
    </encoder>  
  </appender>  
  <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">  
    <file>/logs/consolelogs/rocketmq-console.log</file>  
    <append>true</append>  
    <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">  
      <fileNamePattern>/logs/consolelogs/rocketmq-console.%i.log</fileNamePattern>  
      <minIndex>1</minIndex>  
      <maxIndex>5</maxIndex>  
    </rollingPolicy>  
    <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">  
      <maxFileSize>100MB</maxFileSize>  
    </triggeringPolicy>  
    <encoder>  
      <pattern>[%d{yyyy-MM-dd'T'HH:mm:ss.SSSZ}] %5p %m%n</pattern>  
      <charset class="java.nio.charset.Charset">UTF-8</charset>  
    </encoder>  
  </appender>  
  <root level="ERROR">  
    <appender-ref ref="FILE"/>  
  </root>  
</configuration>

EOF

# 创建容器
docker run -d --name rc --net=host  --restart=always \
-v /home/rc/conf/logback.xml:/logback.xml \
-v /home/rc/logs/:/logs/consolelogs/ \
-e "JAVA_OPTS=-Xmx1024m -Drocketmq.namesrv.addr=192.168.100.149:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" \
-e "server.port=9877" \
-e "server.contextPath=/rc" \
-e "logging.config=/logback.xml" \
styletang/rocketmq-console-ng:1.0.0

4. 创建TOPIC

# 进入rocketmq-broker容器的sh
docker exec -it rocketmq-broker sh
# 创建topic
cd bin &&
sh mqadmin updateTopic -b localhost:10911 -t hwtestnotificationState -w 1 -r 1 &&
sh mqadmin updateTopic -b localhost:10911 -t %DLQ%hwtestdingding_10ConsumerGroup -w 1 -r 1 &&
sh mqadmin updateTopic -b localhost:10911 -t %DLQ%hwtestemail_10ConsumerGroup -w 1 -r 1 &&
sh mqadmin updateTopic -b localhost:10911 -t %DLQ%hwtestsms_10ConsumerGroup -w 1 -r 1 &&
sh mqadmin updateTopic -b localhost:10911 -t %DLQ%hwtestweixin_10ConsumerGroup -w 1 -r 1 &&
sh mqadmin updateTopic -b localhost:10911 -t %DLQ%hwtestdingding_0ConsumerGroup -w 1 -r 1 &&
sh mqadmin updateTopic -b localhost:10911 -t %DLQ%hwtestemail_0ConsumerGroup -w 1 -r 1 &&
sh mqadmin updateTopic -b localhost:10911 -t %DLQ%hwtestsms_0ConsumerGroup -w 1 -r 1 &&
sh mqadmin updateTopic -b localhost:10911 -t %DLQ%hwtestweixin_0ConsumerGroup -w 1 -r 1 &&
sh mqadmin updateTopic -b localhost:10911 -t hwtestdingding_10 -w 16 -r 16 &&
sh mqadmin updateTopic -b localhost:10911 -t hwtestemail_10 -w 16 -r 16 &&
sh mqadmin updateTopic -b localhost:10911 -t hwtestsms_10 -w 16 -r 16 &&
sh mqadmin updateTopic -b localhost:10911 -t hwtestweixin_10 -w 16 -r 16 &&
sh mqadmin updateTopic -b localhost:10911 -t hwtestdingding_0 -w 4 -r 4 &&
sh mqadmin updateTopic -b localhost:10911 -t hwtestemail_0 -w 4 -r 4 &&
sh mqadmin updateTopic -b localhost:10911 -t hwtestsms_0 -w 4 -r 4 &&
sh mqadmin updateTopic -b localhost:10911 -t hwtestweixin_0 -w 4 -r 4 &&
sh mqadmin updateTopic -b localhost:10911 -t %DLQ%hwtesthttp_10ConsumerGroup -w 1 -r 1 &&
sh mqadmin updateTopic -b localhost:10911 -t %DLQ%hwtesthttp_0ConsumerGroup -w 1 -r 1 &&
sh mqadmin updateTopic -b localhost:10911 -t hwtesthttp_10 -w 16 -r 16 &&
sh mqadmin updateTopic -b localhost:10911 -t hwtesthttp_0 -w 4 -r 4

5. 验证

https://192.168.100.149:9443/rc/#/topic

  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值