前言在上一章分析了NamesrvController的构造函数时,会生成一个RouteInfoManager对象,该对象存放着整个消息集群的相关消息,所以这里单独拿出来分析。其实试想一下namesrv的功能不就是一个提供了通信功能的一个队列嘛,而RouteInfoManager保留了所有信息的路由。所以要想弄明白RocketMQ,RouteInfoManager必须要攻下。RouteInfoMan
元数据元数据由RouteInfoManager类管理,包括如下:1) createNamesrvController方法执行createNamesrvController方法得到一个NamesrvController实例;1.1)实例化NamesrvConfig和NettyServerConfigNamesrvConfig主要保存一些属性包括各种配置路径等,其实例作为NamesrvControll
转载
2024-06-03 15:58:37
129阅读
前言Namesrv主要作用就是为消息生产者和消息消费者提供关于topic的路由信息,Namesrv就需要具备路由基础信息管理,Broker节点管理等功能。Namesrv本身是一个无状态的节点,本文我们通过一起来看Broker是如何将信息注册到Namesrv上。路由元信息介绍路由元信息保存在org.apache.rocketmq.namesrv.routeinfo.RouteInfoManager,
NameServer代码结构
如下图:
代码结构
如上图所示,nameServer设计比较轻量级的,其中几个主要类的功能为:
NamesrvStartup:从命名就可以看出这为NameServer的启动类。
RouteInfoManager:从类名可以看出为路由信息的管理类,就是存放Broker的状态信息及Topic于Broker的关联关系。如下截图:
DefaultRequ
转载
2015-12-28 09:24:00
208阅读
RocketMQ源码分析我们主要从NameSrv、路由、生产者、消费者、消息存储等方面一点点分析,本章主要讲的是路由相关的源码分析。一、路由元信息NameSrv中存储了topic的路由信息,这样跟生产者、消费者交互的时候,为两者提供topic的路由信息,NameSrv还得存储路由信息,还得管理节点,包括路由的注册和路由的清除。路由信息主要在RouteInfoManager类中,其中主要包括以下几个
转载
2024-10-21 11:08:50
88阅读