Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Kwan的解忧杂货铺@新空间代码工作室
Rocketmq
提交
3a621e6b
R
Rocketmq
项目概览
Kwan的解忧杂货铺@新空间代码工作室
/
Rocketmq
与 Fork 源项目一致
Fork自
Apache RocketMQ / Rocketmq
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
Rocketmq
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
3a621e6b
编写于
12月 03, 2021
作者:
D
dongeforever
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add code reading guide to doc
上级
a71ee3b9
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
28 addition
and
1 deletion
+28
-1
docs/cn/statictopic/RocketMQ_Static_Topic_Logic_Queue_设计.md
docs/cn/statictopic/RocketMQ_Static_Topic_Logic_Queue_设计.md
+28
-1
未找到文件。
docs/cn/statictopic/RocketMQ_Static_Topic_Logic_Queue_设计.md
浏览文件 @
3a621e6b
...
...
@@ -377,7 +377,12 @@ logicOffset的决策,依赖于上一个 PhysicalQueue 的最大位点。
#### logicOffset 为 -1 时的处理
此时,可以写,但返回给 客户端的 offset 也是-1。
此时,不可以读最新 PhysicalQueue。
需要确保,相关查找 MappingItem 的操作,忽略 logicOffset 为-1的Item,否则可能触发位点被重置!
需要非常小心触发位点被重置:
-
忽略logicOffset为 -1 的item
-
计算staticOffset时,如果发现logicOffset为-1,则报错
目前只允许,SendMessage和GetMin时,返回-1。其余场景,要严格校验并报错。
#### 队列重复映射
如果允许1个 PhysicalQueue 被重复利用,也即多段映射给多个 LogicQueue,或者从非0开始映射。
...
...
@@ -426,6 +431,28 @@ Command操作时,提前预判Master是否存在,如果不存在,则提前
二阶消息需要支持远程读写操作。
一期的LogicQueue不支持『二阶消息』。
### 代码走读要点
#### Admin 入口
主要看两个类:
UpdateStaticTopicSubCommand
RemappingStaticTopicSubCommand
#### Metadata 入口
主要看:
TopicQueueMappingManager
#### Client 入口
重点关注:
MQClientInstance.updateTopicRouteInfoFromNameServer
#### Server 入口
以 SendMessageProcessor 为例,插桩代码普遍是以下风格:
```
TopicQueueMappingContext mappingContext = this.brokerController.getTopicQueueMappingManager().buildTopicQueueMappingContext(requestHeader, true);
RemotingCommand rewriteResult = rewriteRequestForStaticTopic(requestHeader, mappingContext);
if (rewriteResult != null) {
return CompletableFuture.completedFuture(rewriteResult);
}
```
其它Processor类似
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录