序言

rocketmq 中 namesrv 负责管理 broker,与 producer 和 consumer 同学,使其获取全量的 broker 信息,确定向哪个 broker 发送消息以及从哪个 broker 中获取消息。

一、整体结构

二、用例

角色 用例名
broker 上报 broker 信息。包括本机地址,注册的 topic
producer 根据 topic 获取 broker 地址
consumer 根据 topic 获取 broker 地址

三、对外接口

所有接口

通信角色 RequestCode 备注 调用方 数据示例
broker PUT_KV_CONFIG 写 kv
GET_KV_CONFIG 获取 kv
DELETE_KV_CONFIG 删除 kv
QUERY_DATA_VERSION 获取 broker 的版本
REGISTER_BROKER 注册 broker
UNREGISTER_BROKER 取消注册 broker
GET_ROUTEINFO_BY_TOPIC 根据 topic 获取路由信息
GET_BROKER_CLUSTER_INFO 获取 broker 集群信息
WIPE_WRITE_PERM_OF_BROKER 擦除代理的写入权限
GET_ALL_TOPIC_LIST_FROM_NAMESERVER 获取 topic 列表
DELETE_TOPIC_IN_NAMESRV 删除 topic
GET_KVLIST_BY_NAMESPACE 获取 kv 列表
GET_TOPICS_BY_CLUSTER 获取 topic
GET_SYSTEM_TOPIC_LIST_FROM_NS 获取系统 topic 列表
GET_UNIT_TOPIC_LIST
GET_HAS_UNIT_SUB_TOPIC_LIST
GET_HAS_UNIT_SUB_UNUNIT_TOPIC_LIST
UPDATE_NAMESRV_CONFIG 更新 ns 配置
GET_NAMESRV_CONFIG 获取 ns 配置

0. 常用接口

通信角色 动作 RequestCode
broker 注册

1. 与 broker 通信

1.1 注册 broker

入参:

分类 参数名 二级参数 类型 含义
自定义 header brokerName String
自定义 header brokerAddr String
自定义 header clusterName String
自定义 header haServerAddr String
自定义 header brokerId long
自定义 header compressed bool
自定义 header bodyCrc32 int
body topicConfigTable Map<String, TopicConfig>
body topicName
body readQueueNums
body writeQueueNums
body perm
body topicFilterType
body topicSysFlag
body order
body dataVersion DataVersion
body timestamp long
body counter AtomicLong

出参:

参数名 类型 含义
haServerAddr String
masterAddr String

1.2 取消注册 broker

入参:

分类 参数名 二级参数 类型 含义
自定义 header brokerName String
自定义 header brokerAddr String
自定义 header clusterName String
自定义 header brokerId long

出参:无

2. 与 producer 通信

3. 与 consumer 通信

三、数据结构

1. TopicRouteData

字段名 二级字段 类型 含义
orderTopicConf String
queueDatas list
brokerName String broker名称
readQueueNums int 读队列数量
writeQueueNums int 写队列数量
perm int 读写权限
topicSynFlag int 同步复制还是异步复制标记
brokerDatas list
cluster String
brokerName String
brokerAddrs map
filterServerTable map