• docker安装RocketMQ


    1、RocketMQ基本概念
    1.1 消息模型(Message Model)

    RocketMQ主要由Producer、Broker、Consumer三部分组成,其中Producer负责生产消息,Consumer负责消费消息,Broker负责存储消息。Broker在实际部署过程中对应一台服务器,每个Broker可以存储多个Topic的消息,每个Topic的消息也可以分片存储于不同的Broker。MessageQueue用于存储消息的物理地址,每个Topic中的消息地址存储于多个MessageQueue中。ConsumerGroup由多个Consumer实例构成。

    1.2 代理服务器(Broker Server)

    消息中转角色,负责存储消息、转发消息。代理服务器在RocketMQ系统中负责接收从生产者发送来的消息并存储、同时为消费者的拉取请求作准备。代理服务器也存储消息相关的元数据,包括消费者组、消费进度偏移和主题和队列消息等。

    1.3 名字服务(Name Server)

    名称服务充当路由消息的提供者。生产者或消费者能够通过名字服务查找各主题相应的BrokerIP列表。多个Namesrv实例组成集群,但相互独立,没有信息交换。

    2、安装NameServer
    • 搜索/拉取镜像
    docker search rocketmq
    

     docker pull rocketmqinc/rocketmq
    

    • 创建一个数据目录
    mkdir -p /docker/rocketmq/nameserver/logs /docker/rocketmq/nameserver/store
    • 运行
    docker run -d --restart=always --name rmqnamesrv --privileged=true -p 9876:9876  -v /docker/rocketmq/nameserver/logs:/root/logs -v /docker/rocketmq/nameserver/store:/root/store -e "MAX_POSSIBLE_HEAP=100000000" rocketmqinc/rocketmq sh mqnamesrv
    

    • 参数说明
    参数说明
    -d以守护进程的方式启动
    - -restart=alwaysdocker重启时候容器自动重启
    - -name rmqnamesrv把容器的名字设置为rmqnamesrv
    -p 9876:9876把容器内的端口9876挂载到宿主机9876上面
    -v /docker/rocketmq/nameserver/logs:/root/logs目录挂载
    -v /docker/rocketmq/nameserver/store目录挂载
    rmqnamesrv容器的名字
    -e “MAX_POSSIBLE_HEAP=100000000”设置容器的最大堆内存为100000000
    rocketmqinc/rocketmq使用的镜像名称
    sh mqnamesrv启动namesrv服务
    3、安装broker
    • 创建broker.conf配置文件,我的目录是/opt/docker/rocketmq/broker.conf,文件内容如下
    1. brokerClusterName = DefaultCluster
    2. brokerName = broker-a
    3. brokerId = 0
    4. deleteWhen = 04
    5. fileReservedTime = 48
    6. brokerRole = ASYNC_MASTER
    7. flushDiskType = ASYNC_FLUSH
    8. brokerIP1 = 主机的IP
    • 启动broker
     docker run -d --restart=always --name rmqbroker --link rmqnamesrv:namesrv -p 10911:10911 -p 10909:10909 --privileged=true -v /docker/rocketmq/data/broker/logs:/root/logs -v /docker/rocketmq/data/broker/store:/root/store -v /opt/docker/rocketmq/broker.conf:/opt/docker/rocketmq/broker.conf -e "NAMESRV_ADDR=namesrv:9876" -e "MAX_POSSIBLE_HEAP=200000000" rocketmqinc/rocketmq sh mqbroker -c /opt/docker/rocketmq/broker.conf

    参数 说明

    -d以守护进程的方式启动
    --restart=alwaysdocker重启时候容器自动重启
    --name rmqbroker把容器的名字设置为rmqbroker
    --link rmqnamesrv:namesrv和rmqnamesrv容器通信
    -p 9876:9876把容器内的端口9876挂载到宿主机9876上面
    -p 10909:10909把容器的vip通道端口挂载到宿主机
    -e “NAMESRV_ADDR=namesrv:9876”指定namesrv的地址为本机namesrv的ip地址:9876
    -e “MAX_POSSIBLE_HEAP=200000000” rocketmqinc/rocketmq sh mqbroker指定broker服务的最大堆内存
    rocketmqinc/rocketmq使用的镜像名称
    sh mqbroker -c /opt/docker/rocketmq/broker.conf指定配置文件启动broker节点
    4、安装控制台
    • 拉取镜像
    docker pull pangliang/rocketmq-console-ng
    • 控制台启动
    docker run -d --restart=always --name rmqadmin -e "JAVA_OPTS=-Drocketmq.namesrv.addr=122.112.145.138:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8080:8080 pangliang/rocketmq-console-ng
    • 访问

    ip:8080 访问出现如下界面:

  • 相关阅读:
    HPC系统简介
    2022-45~46周(10.24-11.06) 项目问题整理
    centralwidget 不能布局
    13.4 GAS与攻击
    【SpringBoot】lombok 简化开发
    一文让前端搞懂shell编程
    第八章 配置命名空间(三)
    深度融入垂直行业是物联网未来发展必由之路
    mysql8.0 保护登录信息
    数据库1~4NF+ BCNF
  • 原文地址:https://blog.csdn.net/weixin_42383680/article/details/134367451