RocketMQ部署

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: RocketMQ部署

本部分介绍准生产部署方案。通常来将,我们将部署一个没有单故障节点的弹性RocketMQ集群。

准生产部署

Name Server

为了保证当一个实例崩溃后集群仍可运行,推荐2或多个nameServer实例。只要有一个nameServer实例存活,整个集群
仍保持服务。nameServer遵守无共享设计范例。
Brokers发送心跳数据到所有的 nameServer。当发送/消费消息时,生产者和消费者可以从任意可用的nameServer查询元数据

Broker

Broker根据角色可以分为两种类别:master and slave。主Broker提供读写访问,从Broker仅接收读访问。
为了部署一个没有单故障节点的高可用的RocketMQ 集群,一系列broker集合应该被部署。
broker集合内包含一个brokerId 设置为0的主Broker和多个brokerIDs非0的从Broker。
broker集合内的所有broker有相同的brokerName。
最坏的情况,应该有至少2个broker在broker集合内。每个主题在2或多个broker存在。

配置

部署RocketMQ集群时,推荐使用下面的配置列表:

参数名称 默认值 描述
listenPort 10911 客户端监听端口
namesrvAddr null 命名服务地址
brokerIP1 InetAddress for network interface 如果有多个地址需配置
brokerName null 代理服务名称
brokerClusterName DefaultCluster broke属于哪个集群
brokerId 0 brokerID,0是主,正整数是从
storePathCommitLog $HOME/store/commitlog/ 提交日志文件路径
storePathConsumerQueue $HOME/store/consumequeue/ 消费队列文件路径
mapedFileSizeCommitLog 1024 1024 1024(1G) 用于提交日志的映射文件大小
deleteWhen 04 何时删除超过存储时间的提交日志
fileReserverdTime 72 提交日志删除前保存的小时数
brokerRole ASYNC_MASTER brokerRole角色 同步主(SYNC_MASTER)/异步主(ASYNC_MASTER)/从(SLVAE)
flushDiskType ASYNC_FLUSH 刷盘类型{SYNC_FLUSH/ASYNC_FLUSH}
刷盘类型

SYNC_FLUSH 模式,生产者确认前,每条消息刷盘
ASYNC_FLUSH 模式,组提交优势,性能更好。

复制模式

为了确保成功发布的消息不会丢失,RocketMQ提供复制模式来获得更强的持久性和高可用,两种复制模式:Sync & Async。

复制: Sync / Async Broker

类似多数复制系统,同步Broker一直等待,直到在确认前将提交日志复制到从。
异步Broker,消息被主处理后会立即返回。

如何配置

在配置文件下RocketMQ提供了三种预设的配置:

2m-2s-sync
2m-2s-async
2m-noslave
注意:所有配置都要使用 ASYNC_FLUSH。

Deployment

以 2m-2s-sync 部署为例。首先,启动两个name servers。假设它们的 IP 是192.168.0.2 和 192.168.0.3.

//192.168.0.2
> sh bin/mqnamesrv &

//192.168.0.3
> sh bin/mqnamesrv &

然后启动broker(假设RocketMQ 在/home/rocketmq/dist )。

>cd /home/rocketmq/dist/bin
//broker-a 主
>sh mqbroker -c ../conf/2m-2s-sync/broker-a.properties -n 192.168.0.2:9876,192.168.0.3:9876
//broker-a 从
>sh mqbroker -c ../conf/2m-2s-sync/broker-a-s.properties -n 192.168.0.2:9876,192.168.0.3:9876
//broker-b 主
>sh mqbroker -c ../conf/2m-2s-sync/broker-b.properties -n 192.168.0.2:9876,192.168.0.3:9876
//broker-b 从
>sh mqbroker -c ../conf/2m-2s-sync/broker-b-s.properties -n 192.168.0.2:9876,192.168.0.3:9876

//验证是否启动
> bash mqadmin clusterlist

数据清理

停服务:

> sh mqshutdown broker
> sh mqshutdown namesrv

删除store文件,重新建文件:

//删除store文件夹下内容
> rm -rf /usr/local/rocketmq/store/

//创建commitlog,consumequeue,index
> mkdir /usr/local/rocketmq/store/commitlog
> mkdir /usr/local/rocketmq/store/consumequeue
> mkdir /usr/local/rocketmq/store/index
相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
相关文章
|
5月前
|
消息中间件 Linux RocketMQ
【RocketMq】RocketMq 4.9.4 Windows-docker 部署
【RocketMq】RocketMq 4.9.4 Windows-docker 部署
368 0
【RocketMq】RocketMq 4.9.4 Windows-docker 部署
|
3月前
|
消息中间件 编解码 Docker
Docker部署RabbitMQ消息中间件
【7月更文挑战第4天】Docker部署RabbitMQ消息中间件
242 3
|
1月前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
2月前
|
消息中间件 存储 Kubernetes
k8s快速部署rocketMq及rocketMq-console-ng
k8s快速部署rocketMq及rocketMq-console-ng
|
2月前
|
消息中间件 监控 数据可视化
安装部署RabbitMQ
安装部署RabbitMQ
|
3月前
|
消息中间件 数据可视化 RocketMQ
【RocketMQ系列二】通过docker部署单机RocketMQ
【RocketMQ系列二】通过docker部署单机RocketMQ
850 4
|
4月前
|
消息中间件 Kubernetes Android开发
消息队列 MQ产品使用合集之如何在kubernetes环境里面部署
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
4月前
|
消息中间件 监控 RocketMQ
Docker Compose 一键快速部署 RocketMQ
Docker Compose 一键快速部署 RocketMQ
77 0
|
4月前
|
消息中间件 存储 数据安全/隐私保护
docker部署rabbitmq
docker部署rabbitmq
54 0
|
4月前
|
消息中间件 Apache C语言
消息队列 MQ产品使用合集之在Cluster部署模式下,使用dashboard无法查询到消费组信息,一般是什么导致的
阿里云消息队列MQ(Message Queue)是一种高可用、高性能的消息中间件服务,它允许您在分布式应用的不同组件之间异步传递消息,从而实现系统解耦、流量削峰填谷以及提高系统的可扩展性和灵活性。以下是使用阿里云消息队列MQ产品的关键点和最佳实践合集。
下一篇
无影云桌面