RocketMQ源码分析之主从数据复制.docx
《RocketMQ源码分析之主从数据复制.docx》由会员分享,可在线阅读,更多相关《RocketMQ源码分析之主从数据复制.docx(47页珍藏版)》请在第一文库网上搜索。
1、RocketMQ源码分析之主从数据复制前言在RocketMQ主从架构中master和s1ave之间会进行数据同步,其中数据同步包括元数据复制和coit1og复制,那么为什么同步的数据中不包括COnSUmeqUeUe和indexFiIe呢?这里大家可以思考下:master节点上Consumequeue和indexFi1e是根据commit1og构建的,所以s1ave在同步完COmmit1og后只需要根据COmmit1Og构建COi1SUmeqUeUe和indexFi1e即可。本篇文章就来分析下master和s1ave之间是如何进行数据同步?一、元数据复制1 .元数据复制入口在RocketMQ中的
2、主从架构中,在启动s1ave节点的过程中会启动一个定时任务,该定时任务的功能是从HIaSter节点获取元数据。具体如下:rivateVOidhand1eS1aveSynchronize(BrOkerRoIero1e)if(ro1e=BrokerRo1e.S1AVE)if(nu11!=SIaVeSynCFUtUre)S1aVeSynCFUtUre.CanCe1(fa1se);Ihis.S1aveSynchronize.SeIMaSIerAddr(nu11);S1aVeSynCFU1Ure二1his.SChedU1eCIEXeCUIorSetice.Schedu1eAtFixedRate(newR
3、unnab1eO0VerridPUbIiCVoidrun()BrokerContro11er.thiS1aveSynchronize.SynCAII();1og.error(riSchedu1edTISkS1aveSynchronizeSynCA1Ierror.”,e);,IOOO*3,IOOO*10,TimeUnit.MI11ISECONDS);e1sehand1ethes1if(nu11SIaVeSynCFUtUre)SIaVeSynCFUtUre.CanCe1(fa1se);1his.S1aveSynchronize.SC1MaSterAddr(nu11);this.SynCToPiCC
4、onfig()this.SynCConSUmerOffSet()2 Ihis.SynCSUbSCriPIiOnGrOUPCOnfig();3 .元数据复制都包含哪些内容?从SynCAI1()方法可以看出元数据复制主要包含以下文件:(1) topics,json:topic配置文件(2) ConsumerOffset.json:ConSUmer消费进度文件(3) de1ayffset.json:延迟消息拉取进度(4) SubscriptionGroup.json:ConsumerGroup配置文件3.元数据同步流程在RocketMQ中四种元数据文件同步的流程是一样的,这里以topics,json
5、为例来分析其流程。从上面SynCAI1()方法可知:topic配置文件的同步入口是SyncTopicConfigO方法,具体如下:IPriVateVoidSyncTopicConfigOIStringInasterAddrBak=this.HiasterAddr;Iif(masterAddrBak!=nu11&!masterAddrBak.equaIIS(brokerContro11er.getBrokerAddr()IToPiCCOnfigSeria1iZeWraPPertopicWraIthis.brokerContro11er.getBrokIeroUterAPI().getA1IToP
6、iCConfig(masterAddrBak);Iif(!this.brokerContro11er.getTopicConfigManager().getDataVersionI.equa1s(topicWrapper.getDataVIIhis.brokerContro11er.getTopibConfigManager().getDataVersion()I.assignNewOne(topicWjgetDatayersionO);this.brokerContro11er.getTopiIthis.brokerContro11er.getTopiI.PUtAI1(topicWrappe
7、r.Ithis.brokerContro11er.getTopiI1og,info(UpdateSIaVetopiConfigfrommaster,“,masterAddrBak);1og,error(SyncTopicConfigEXCePtioI首先s1ave会通过getA1ITopicConfig方法以同步调用的方式向master发送RequestCode.GET_A11_TOPTC_CONFIG请求来获取topic配置文件信息。IUb1iCTOPiCConfigSeria1iZeWraPPergetA1ITopicConfig(fina1S1ringaddr)IhrOWSRemotin
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- RocketMQ 源码 分析 主从 数据 复制