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
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
分享8年开发经验,浅谈程序员职业规划
在中国有很多人都认为IT行业是吃青春饭的,如果过了30岁就很难有机会再发展下去!其实现实并不是这样子的,在下从事.NET及JAVA方面的开发的也有8年的时间了,在这里在下想凭借自己的亲身经历,与大家一起探讨一下。 明确入行的目的 很多人干IT这一行都冲着“收入高”这一点的,因为只要学会一点HTML、DIV+CSS,要做一个页面开发人员并不是一件难事,而且做一个页面开发人员更容易找到工作,收入比普通的工作还要高一些,所以成为了很多高校毕业生的选择。如果您只是抱着这样一个心态来入行的话,那阁下可真的要小心。因为干IT这一行竞争本来就比较激烈,特别是页面设计这方面,能够开发的人很多,所以为了节省成本在大部分公司都会在需要的时候才招聘这类人员,在没有订单的时候一些小公司还可能找各类的借口或者以降薪的手段去开除这类员工。而在招聘信息上常常会看到“招聘页面设计师,条件:30岁以下……欢迎应界毕业生前来应聘”这样一条,因为这一类工员对技术上的要求并不高,找应界生可以节约成本。所以在下觉得“IT行业是吃青春饭的”这句话只是对着以上这类人所说的,如果阁下缺乏“进取之心”,而只抱着“收入高,容易找工作”这...
- 下一篇
优秀Android开发的职业成长路径是怎样的?
在不同的职业发展阶段,Android开发的薪水有非常大的差异,伴随着技能和薪资的提升,一位比较顺利的Android开发的职业成长之路是这样的: 1. 初级Android开发:0~3年 在从事Android开发的前三年,在没有遇到和解决足够多的问题之前,你都是菜鸟。对雇主来说,与其社招只有两年工作经验的Android开发,不如通过校招自己培养,这也是大多数公司一般只接受2年工作经验以上的程序员的原因。 2. 高级Android 开发:3~5年 这是你快速成长成熟的阶段,此时你可能已经有过一次跳槽经历,已经可以独立带领一个小团队,成为一名技术Leader,或小型创业公司的CTO。 3. 架构师:5~7年 成为一名架构师需要更强大的宏观把控能力,可以从上而下看问题,具备良好的体力和思维能力。 4. 研究员/管理总监:7年/10年以上 7年以上的Android开发如果走技术专业路线,首席架构师/研究员是开发者的最终职业目标。要成为首架/Fellow,不仅需要有扎实的基础,还要具备高情商,以及hands-on写代码的能力。值得一提的是,情商在职业发展的后半段发挥着越来越大的作用,尤其体现在团队沟...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8编译安装MySQL8.0.19
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Mario游戏-低调大师作品
- 2048小游戏-低调大师作品
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Thymeleaf,官方推荐html解决方案