序言
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 |