提交 085f2392 编写于 作者: D dongeforever

Polish newline for doc

上级 e002c74c
......@@ -351,7 +351,9 @@ RocketMQ 没有引入中心化的存储组件,那么如何保证 SOT 的全局
主要利用两个信息
* TopicQueueMapping 带上的 epoch
* TopicQueueMapping 带上 totalQueues
在更新或者切换时,获取所有Broker上的 TopicQueueMapping,校验 epoch 和 totalQueues,并且根据 TopicQueueMapping 可以完整地构建出对应的Logic Queue,则说明数据是完整一致的。
如果发现数据不一致,可能是以下因素引入的:
* 集群中有Broker宕机
* 上次更新没有完全成功
......@@ -370,11 +372,10 @@ Target Brokers 是指拥有 LogicQueue 的 Broker。
#### 切换时最新 LogicQueueMappingItem 的 logicOffset 决策问题
logicOffset的决策,依赖于上一个 PhysicalQueue 的最大位点。
此时,要么跳跃位点,要么等待上一个 PhysicalQueue 确保已经禁写。
当前实现,为了保障高可用,采用『切新禁旧再切新』的方式,同时跳跃位点。
#### logicOffset 为 -1 时的处理
此时,可以写,但返回给 客户端的 offset 也是-1
此时,可以写,但返回给 客户端的 offset 也是-1
此时,不可以读最新 PhysicalQueue。
需要确保,相关查找 MappingItem 的操作,忽略 logicOffset 为-1的Item,否则可能触发位点被重置!
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册