使用docker安装RocketMQ、Redis

文章目录
  1. 1. rocketmq
  2. 2. rocketmq-console
  3. 3. redis

rocketmq

  1. 创建namesrv

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    docker pull rocketmqinc/rocketmq

    # 创建namesrv数据存储路径
    mkdir -p /docker/rocketmq/data/namesrv/logs /docker/rocketmq/data/namesrv/store

    # 构建namesrv容器
    docker run -d \
    --restart=always \
    --name rmqnamesrv \
    -p 9876:9876 \
    -v /docker/rocketmq/data/namesrv/logs:/root/logs \
    -v /docker/rocketmq/data/namesrv/store:/root/store \
    -e "MAX_POSSIBLE_HEAP=100000000" \
    rocketmqinc/rocketmq \
    sh mqnamesrv
  2. 创建broker节点

    1
    2
    3
    4
    5
    6
    # 创建broker数据存储路径
    mkdir -p /docker/rocketmq/data/broker/logs /docker/rocketmq/data/broker/store /docker/rocketmq/conf

    # 创建配置文件
    vi /docker/rocketmq/conf/broker.conf

    添加如下内容

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    # 所属集群名称,如果节点较多可以配置多个
    brokerClusterName = DefaultCluster
    #broker名称,master和slave使用相同的名称,表明他们的主从关系
    brokerName = broker-a
    #0表示Master,大于0表示不同的slave
    brokerId = 0
    #表示几点做消息删除动作,默认是凌晨4点
    deleteWhen = 04
    #在磁盘上保留消息的时长,单位是小时
    fileReservedTime = 48
    #有三个值:SYNC_MASTER,ASYNC_MASTER,SLAVE;同步和异步表示Master和Slave之间同步数据的机制;
    brokerRole = ASYNC_MASTER
    #刷盘策略,取值为:ASYNC_FLUSH,SYNC_FLUSH表示同步刷盘和异步刷盘;SYNC_FLUSH消息写入磁盘后才返回成功状态,ASYNC_FLUSH不需要;
    flushDiskType = ASYNC_FLUSH
    # 设置broker节点所在服务器的ip地址
    brokerIP1 = 192.168.0.101
    # 磁盘使用达到95%之后,生产者再写入消息会报错 CODE: 14 DESC: service not available now, maybe disk full
    diskMaxUsedSpaceRatio=95
  3. 创建broker容器

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    docker run -d  \
    --restart=always \
    --name rmqbroker \
    --link rmqnamesrv:namesrv \
    -p 10911:10911 \
    -p 10909:10909 \
    -v /docker/rocketmq/data/broker/logs:/root/logs \
    -v /docker/rocketmq/data/broker/store:/root/store \
    -v /docker/rocketmq/conf/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf \
    -e "NAMESRV_ADDR=192.168.0.101:9876" \
    -e "MAX_POSSIBLE_HEAP=200000000" \
    rocketmqinc/rocketmq \
    sh mqbroker -c /opt/rocketmq-4.4.0/conf/broker.conf

rocketmq-console

1
docker run -e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.0.101:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8080:8080 -t styletang/rocketmq-console-ng

redis

1
docker run -itd --name redis-test -p 6379:6379 redis