• 基于 Docker 安装 RocketMQ


    docker-compose.yml
    注意:启动 RocketMQ Server + Broker + Console 至少需要 2G 内存

    version: '3.5'
    services:
    rmqnamesrv:
    image: foxiswho/rocketmq:server
    container_name: rmqnamesrv
    ports:
    - 9876:9876
    volumes:
    - ./data/logs:/opt/logs
    - ./data/store:/opt/store
    networks:
    rmq:
    aliases:
    - rmqnamesrv

    rmqbroker:
    image: foxiswho/rocketmq:broker
    container_name: rmqbroker
    ports:
    - 10909:10909
    - 10911:10911
    volumes:
    - ./data/logs:/opt/logs
    - ./data/store:/opt/store
    - ./data/brokerconf/broker.conf:/etc/rocketmq/broker.conf
    environment:
    NAMESRV_ADDR: "rmqnamesrv:9876"
    JAVA_OPTS: " -Duser.home=/opt"
    JAVA_OPT_EXT: "-server -Xms128m -Xmx128m -Xmn128m"
    command: mqbroker -c /etc/rocketmq/broker.conf
    depends_on:
    - rmqnamesrv
    networks:
    rmq:
    aliases:
    - rmqbroker

    rmqconsole:
    image: styletang/rocketmq-console-ng
    container_name: rmqconsole
    ports:
    - 8080:8080
    environment:
    JAVA_OPTS: "-Drocketmq.namesrv.addr=rmqnamesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false"
    depends_on:
    - rmqnamesrv
    networks:
    rmq:
    aliases:
    - rmqconsole

    networks:
    rmq:
    name: rmq
    driver: bridge

    broker.conf

    RocketMQ Broker 需要一个配置文件,按照上面的 Compose 配置,我们需要在 ./data/brokerconf/ 目录下创建一个名为 broker.conf 的配置文件,内容如下:

    Licensed to the Apache Software Foundation (ASF) under one or more

    contributor license agreements. See the NOTICE file distributed with

    this work for additional information regarding copyright ownership.

    The ASF licenses this file to You under the Apache License, Version 2.0

    (the "License"); you may not use this file except in compliance with

    the License. You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software

    distributed under the License is distributed on an "AS IS" BASIS,

    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

    See the License for the specific language governing permissions and

    limitations under the License.

    所属集群名字

    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.0.253

    在发送消息时,自动创建服务器不存在的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

    RocketMQ 控制台

    访问 http://rmqIP:8080 登入控制台

    等你看到的时候,想变得有一点点不一样
  • 相关阅读:
    用Fiddle跟踪调试移动表单
    查找指定表、字段上面的默认值约束
    sql跳过非工作日(周末和节假日)
    python学习(一)
    charles抓包
    jemeter简单压测
    jemeter接口测试
    postman接口测试
    接口测试基础知识学习
    定期小结
  • 原文地址:https://www.cnblogs.com/snake107/p/11920885.html
Copyright © 2020-2023  润新知