Windows10 使用docker部署RocketMQ,以及内存问题

  1. 创建一个新的网络连接

    docker network create rocketmq-net
    
  2. 拉取镜像

    docker pull apache/rocketmq:5.1.4
    
  3. 创建rocketmq-namesrv容器

    docker run -d --name rocketmq-namesrv --network rocketmq-net -e "JAVA_OPTS=-Drocketmq.namesrv.bindIP=0.0.0.0" -p 9876:9876 apache/rocketmq:5.1.4 sh mqnamesrv
    
  4. 启动状态:docker logs -f rocketmq-namesrv,出现以下就是成功的
    . 在这里插入图片描述

  5. 添加需要映射的文件broker.conf,修改brokerIP1为你电脑IP

    # 所属集群名字
    brokerClusterName=DefaultCluster
    
    # broker 名字,注意此处不同的配置文件填写的不一样,如果在 broker-a.properties 使用: broker-a,
    # 在 broker-b.properties 使用: broker-b
    brokerName=broker-a
    
    # 0 表示 Master,> 0 表示 Slave
    brokerId=0
    
    # nameServer地址,分号分割
    # namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876
    
    # 启动IP,如果 docker 报 com.alibaba.rocketmq.remoting.exception.RemotingConnectException: connect to <192.168.0.120:10909> failed
    # 解决方式1 加上一句 producer.setVipChannelEnabled(false);,解决方式2 brokerIP1 设置宿主机IP,不要使用docker 内部IP
    brokerIP1=192.168.100.105
    
    # 在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
    defaultTopicQueueNums=4
    
    # 是否允许 Broker 自动创建 Topic,建议线下开启,线上关闭 !!!这里仔细看是 false,false,false
    autoCreateTopicEnable=true
    
    # 是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
    autoCreateSubscriptionGroup=true
    
    # Broker 对外服务的监听端口
    listenPort=10911
    
    # 删除文件时间点,默认凌晨4点
    deleteWhen=04
    
    # 文件保留时间,默认48小时
    fileReservedTime=120
    
    # commitLog 每个文件的大小默认1G
    mapedFileSizeCommitLog=1073741824
    
    # ConsumeQueue 每个文件默认存 30W 条,根据业务情况调整
    mapedFileSizeConsumeQueue=300000
    
    # destroyMapedFileIntervalForcibly=120000
    # redeleteHangedFileInterval=120000
    # 检测物理文件磁盘空间
    diskMaxUsedSpaceRatio=88
    # 存储路径
    # storePathRootDir=/home/ztztdata/rocketmq-all-4.1.0-incubating/store
    # commitLog 存储路径
    # storePathCommitLog=/home/ztztdata/rocketmq-all-4.1.0-incubating/store/commitlog
    # 消费队列存储
    # storePathConsumeQueue=/home/ztztdata/rocketmq-all-4.1.0-incubating/store/consumequeue
    # 消息索引存储路径
    # storePathIndex=/home/ztztdata/rocketmq-all-4.1.0-incubating/store/index
    # checkpoint 文件存储路径
    # storeCheckpoint=/home/ztztdata/rocketmq-all-4.1.0-incubating/store/checkpoint
    # abort 文件存储路径
    # abortFile=/home/ztztdata/rocketmq-all-4.1.0-incubating/store/abort
    # 限制的消息大小
    maxMessageSize=65536
    
    # flushCommitLogLeastPages=4
    # flushConsumeQueueLeastPages=2
    # flushCommitLogThoroughInterval=10000
    # flushConsumeQueueThoroughInterval=60000
    
    # Broker 的角色
    # - ASYNC_MASTER 异步复制Master
    # - SYNC_MASTER 同步双写Master
    # - SLAVE
    brokerRole=ASYNC_MASTER
    
    # 刷盘方式
    # - ASYNC_FLUSH 异步刷盘
    # - SYNC_FLUSH 同步刷盘
    flushDiskType=ASYNC_FLUSH
    
    # 发消息线程池数量
    # sendMessageThreadPoolNums=128
    # 拉消息线程池数量
    # pullMessageThreadPoolNums=128
    
    
  6. 启动broker
    正常启动:

    docker run -d --name rocketmq-broker --network rocketmq-net -p 10911:10911 -p 10909:10909  -e "NAMESRV_ADDR=rmqnamesrv:9876" -v D:\\environment\docker\rocketMQ\broker.conf:/home/rocketmq/rocketmq-5.1.4/conf/broker.conf apache/rocketmq:5.1.4 sh mqbroker
    

    D:\\environment\docker\rocketMQ\broker.conf 是宿主机的路径,即Windows电脑里的路径
    /home/rocketmq/rocketmq-5.1.4/conf/broker.conf 这是docker里的路径

    • 若出现/bin/runbroker.sh: line 90: 25991 Killed $JAVA ${JAVA_OPT} $@,则是内存问题,需要修改内存
    docker run -d --name rocketmq-broker --network rocketmq-net -p 10911:10911 -p 10909:10909  -e "NAMESRV_ADDR=rmqnamesrv:9876" -e "JAVA_OPT_EXT=-Xms128m -Xmx128m -Xmn128m" -e "MAX_POSSIBLE_HEAP=200000000" -v D:\\environment\docker\rocketMQ\broker.conf:/home/rocketmq/rocketmq-5.1.4/conf/broker.conf apache/rocketmq:5.1.4 sh mqbroker
    
    • 修改后,如果发现docker使用出现500的问题,大概率是docker内存溢出
    1. 查看Windows查看docker信息,docker info,我这个已经是8G的,之前是2G,看自己电脑内存改。
      在这里插入图片描述

    2. 修改方式:windows路径栏输入:%UserProfile%,找到.wslconfig文件,没有的话自己加一下,修改内存大小
      在这里插入图片描述

      # 设置在wsl2上运行
      [wsl2]
      # 设置分配给WSL VM 的内存大小(默认是1/2的电脑内存)
      memory=8GB
      # 设置要分配给 WSL 2 VM 的逻辑处理器数(默认和Windows 上相同数量的逻辑处理器)
      processors=10 
      ```
      
      
      
      
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值