1. 整体架构

在安装RocketMQ之前,我们先了解一下RocketMQ的部署架构,了解一下RocketMQ的组件,然后基于当前主流的Docker安装RocketMQ,我们这里安装单台RocketMQ,但为了防止单节点故障、保障高可用,生产环境建议安装RocketMQ集群。

​ 1:NameServer是一个非常简单的Topic路由注册中心,其角色类似Dubbo中的zookeeper,支持Broker的 动态注册与发现。

​ 2:Broker主要负责消息的存储、投递和查询以及服务高可用保证。

​ 3:Producer消息发布的角色,支持分布式集群方式部署。Producer通过MQ的负载均衡模块选择相应的 Broker集群队列进行消息投递,投递的过程支持快速失败并且低延迟。

​ 4:Consumer消息消费的角色,支持分布式集群方式部署。支持以push推,pull拉两种模式对消息进行消 费。同时也支持集群方式和广播方式的消费,它提供实时消息订阅机制,可以满足大多数用户的需求。

参考地址:https://github.com/apache/rocketmq/tree/master/docs/cn

2. Docker安装RocketMQ

2.1 安装NameServer

  • 拉取镜像

    docker pull rocketmqinc/rocketmq
    
  • 创建数据存储目录

    mkdir -p /docker/rocketmq/data/namesrv/logs /docker/rocketmq/data/namesrv/store
    
  • 安装

    docker run -d --restart=always --name rmqnamesrv --privileged=true -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
    

参数说明:

参数 说明
-d 以守护进程的方式启动
- -restart=always docker重启时候容器自动重启
- -name rmqnamesrv 把容器的名字设置为rmqnamesrv
-p 9876:9876 把容器内的端口9876挂载到宿主机9876上面
-v /docker/rocketmq/data/namesrv/logs:/root/logs 目录挂载
-v /docker/rocketmq/data/namesrv/store:/root/store 目录挂载
rmqnamesrv 容器的名字
-e “MAX_POSSIBLE_HEAP=100000000” 设置容器的最大堆内存为100000000
rocketmqinc/rocketmq 使用的镜像名称
sh mqnamesrv 启动namesrv服务

2.2 安装Broker

border配置:创建 broker.conf 配置文件 vi /docker/rocketmq/conf/broker.conf ,配置如下:

# 所属集群名称,如果节点较多可以配置多个
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.100.130
#剩余磁盘比例
diskMaxUsedSpaceRatio=99

安装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 /docker/rocketmq/conf/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf -e "NAMESRV_ADDR=namesrv:9876" -e "MAX_POSSIBLE_HEAP=200000000" rocketmqinc/rocketmq sh mqbroker -c /opt/rocketmq-4.4.0/conf/broker.conf

相关参数说明:

参数 说明
-d 以守护进程的方式启动
- -restart=always docker重启时候容器自动重启
- -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/rocketmq-4.4.0/conf/broker.conf 指定配置文件启动broker节点

2.3 控制台安装

拉取镜像:

docker pull pangliang/rocketmq-console-ng

控制台安装: 记得修改IP地址

docker run -d --restart=always --name rmqadmin -e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.100.130:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8080:8080 pangliang/rocketmq-console-ng

2.4 关闭防火墙(或者开放端口)

云服务器还需要去开放相关端口。

#关闭防火墙
systemctl stop firewalld.service
#禁止开机启动
systemctl disable firewalld.service

2.5 测试

访问:http://192.168.100.130:8080/#/ (可以切换中文)

Docker 安装 Rocket MQ相关推荐

  1. docker安装rocketmq_RabbitMQ 介绍amp;安装

    什么是MQ 消息队列(Message Queue,简称MQ),从字面意思上看,本质是个队列,只不过队列中存放的内容是message而已. 其主要用途:不同进程Process/线程Thread之间通信. ...

  2. rabbitMq简介及docker安装

    一.JMS协议和AMQP协议 关于JMS和AMQP的区别:主要是AMQP是协议,JMS是API而RabbitMQ 基于AMQP协议,erlang语言开发,是部署最广泛的开源消息中间件,是最受欢迎的开源 ...

  3. 最详细的docker安装rocketMQ教程来了

    RocketMQ是一款分布式.队列模型的消息中间件,是由阿里巴巴设计的,具有以下特点: 支持严格的消息顺序 支持Topic与Queue两种模式 亿级消息堆积能力 比较友好的分布式特性 同时支持Push ...

  4. docker 安装RabbitMQ(镜像安装)

    目录 安装: docker:链接:docker安装 1.进入docker hub镜像仓库 2.选择镜像 3.拉取镜像 4.根据下载的镜像创建和启动容器 5.查看正在运行容器 6.浏览器打开web管理端 ...

  5. linux版docker安装镜像

    目录 安装portainer 安装mysql单机版 安装mysql主从复制 安装redis单机版 安装redis集群(3主3从) 安装ES docker安装kafka docker安装nacos do ...

  6. docker安装zookeeper,以及zk可视化界面介绍

    zookeeper简单介绍 ZooKeeper是一个开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性服 ...

  7. 离线安装docker,docker安装MySQL,Redis,ES,Kibana,mongoDB,RocketMQ

    目录 安装docker,docker-compose 离线安装docker,docker-compose 安装ElasticSearch 安装kibana 下载ik分词器. 安装MySQL 设置MyS ...

  8. Docker安装部署MySQL+Canal+Kafka+Camus+HIVE数据实时同步

    因为公司业务需求要将mysql的数据实时同步到hive中,在网上找到一套可用的方案,即MySQL+Canal+Kafka+Camus+HIVE的数据流通方式,因为是首次搭建,所以暂时使用伪分布式的搭建 ...

  9. Rocket MQ详解

    Rocket MQ 一,是啥,从哪来 RocketMQ是一个开源的分布式消息中间件,最初由阿里巴巴集团开发.它的设计目标是为了在高并发.高吞吐量的场景下,实现可靠的消息传输,并且具有良好的可伸缩性和可 ...

最新文章

  1. ceph 代码分析 读_分布式存储 Ceph 的演进经验 SOSP 2019
  2. 恶意代码实战Lab13-01分析
  3. Java笔记-使用System.gc()进行内存回收
  4. 前端_JavaScript
  5. mysql数据库基础知识和安装与卸载(快速入门)
  6. python如何判断对象是否为字符串或者其他类型
  7. java 场景处理,最适合使用RxJava处理的四种场景
  8. Win8系统搜索不到无线信号该怎么办?
  9. 编程语言中的常量折叠(const folding)
  10. Vue实现excel文件下载
  11. Unity阴阳师画符教学
  12. xmind思维导图pdf格式如何导出?xmind思维导图pdf格式导出流程介绍
  13. python 使用多个elif代码块 计算阶梯电费
  14. 什么是股票配资app?
  15. Unity 之 ShaderGraph Input节点解析汇总
  16. 小程序突然报module is not defined_蔬菜“英文”小故事(九)
  17. java性能优化总结_35 个 Java 代码性能优化总结(一)
  18. Java 8 辣么大(lambda)表达式不慌之—–(四)示例-Collectors中的中的joining 方法和mapping方法
  19. flink kafka报错Timeout of 60000ms expired before the position for partition could be determined
  20. 这是一份全面详细的Android 车载系统开发入门指南

热门文章

  1. 龙族幻想东京机器人一次_龙族幻想凌晨四点的东京机器人坐标-机器人刷新点_6137游戏网...
  2. Hystrix Dashboard
  3. 华为机试(扑克牌大小3.3)
  4. java线段绕原点旋转的方法,将点绕坐标原点顺时针旋转得到点的坐标为___________。-九年级数学-魔方格...
  5. 水星路由器wan口ip显示0_wan口状态ip地址为0.0.0.0
  6. 【SDL游戏编程入门第一卷】配置SDL环境
  7. “我强奸自己犯法吗?”,B站的罗翔老师,太上头了...
  8. 抖音多账号零粉直播工具源码实现无人直播
  9. 高一计算机专业班主任工作总结,计算机班主任工作总结
  10. python映射类型是什么意思_Python中字典映射类型的学习教程