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集群时,推荐使用下面的配置列表:

参数名称默认值描述
listenPort10911客户端监听端口
namesrvAddrnull命名服务地址
brokerIP1InetAddress for network interface如果有多个地址需配置
brokerNamenull代理服务名称
brokerClusterNameDefaultClusterbroke属于哪个集群
brokerId0brokerID,0是主,正整数是从
storePathCommitLog$HOME/store/commitlog/提交日志文件路径
storePathConsumerQueue$HOME/store/consumequeue/消费队列文件路径
mapedFileSizeCommitLog1024 1024 1024(1G)用于提交日志的映射文件大小
deleteWhen04何时删除超过存储时间的提交日志
fileReserverdTime72提交日志删除前保存的小时数
brokerRoleASYNC_MASTERbrokerRole角色 同步主(SYNC_MASTER)/异步主(ASYNC_MASTER)/从(SLVAE)
flushDiskTypeASYNC_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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值