diff --git "a/docs/cn/statictopic/RocketMQ_Static_Topic_Logic_Queue_\350\256\276\350\256\241.md" "b/docs/cn/statictopic/RocketMQ_Static_Topic_Logic_Queue_\350\256\276\350\256\241.md" index 7120f6715f3867783ab50edeb350b2e2f7384e44..c019e3d98412d216965e419c1ac0fe3da65e2956 100644 --- "a/docs/cn/statictopic/RocketMQ_Static_Topic_Logic_Queue_\350\256\276\350\256\241.md" +++ "b/docs/cn/statictopic/RocketMQ_Static_Topic_Logic_Queue_\350\256\276\350\256\241.md" @@ -2,13 +2,12 @@ | 时间 | 主要内容 | 作者 | | --- | --- | --- | | 2021-11-01 | 初稿,包括背景、目标、SOT定义与持久化、SOT生命周期、SOT的使用、API逻辑修改、问题与风险 | dongeforever | -| 2021-11-15 | -1. 修改 LogicQueue 的定义,不要引入新字段,完全复用旧的MessageQueue -1. RemappingStaticTopic时,不要迁移『位点』『幂等数据』等,而是采用Double-Check-Read 的机制 - | dongforever | +| 2021-11-15 | 修改 LogicQueue 的定义,不要引入新字段,完全复用旧的MessageQueue; RemappingStaticTopic时,不要迁移『位点』『幂等数据』等,而是采用Double-Check-Read 的机制| dongforever | + +中文文档在描述特定专业术语时,仍然使用英文。 ### 需求背景 -LogicQueue 本质上是解决『固定队列数量』的需求。 +StaticTopic/LogicQueue 本质上是解决『固定队列数量』的需求。 这个需求是不是必需的呢,如果是做应用集成,则可能不是必需的,但如果是做数据集成,则是必需的。 固定队列数量,首先可以解决『顺序性』的问题。 @@ -18,8 +17,7 @@ LogicQueue 本质上是解决『固定队列数量』的需求。 有人可能会反驳,说计算组件清洗后,可以以批的方式写入其它存储组件。这当然是可以的,但如果是这样,MQ的价值就纯粹是一个『源头』价值,而不是『通道』价值。 -MQ要想成为一个『数据通道』,则必需要具备可以让计算组件『回写』数据的能力,具备存储『Clean Data』的能力。 -具备『回写 Clean Data』的能力,才让MQ有可能在数据集成领域站稳脚跟。 +MQ要想成为一个『数据通道』,则必需要具备可以让计算组件『回写』数据的能力,具备存储『Clean Data』的能力,这样才让MQ有可能在数据集成领域站稳脚跟。 如果是 RocketMQ Streams 这种轻量化的组件,则『回写』会更频繁,更重要。 @@ -41,21 +39,24 @@ LogicQueue的思路就是为了解决这一问题。 - dynamic sharded topic, dynamic topic for short, which has queues increasing with the broker numbers. - static sharded topic, static topic for short, which has fixed queues, implemented with logic queues. +『Static Topic』拥有固定的分片数量,每个分片称之为『Logic Queue』。 +每个『Logic Queue』由多个『Physical Queue』进行纵向分段映射组成。 + #### LogicQueue 目标 -在客户端,LogicQueue 与普通 Queue 没有任何区别,使用一样的概念和对象,遵循一样的语义。 -在服务端,针对LogicQueue去适配相关的API。 +在客户端,LogicQueue 与 Physical Queue 使用体感上没有任何区别,使用一样的概念和对象,遵循一样的语义。 +在服务端,针对 LogicQueue 去适配相关的API。 #### 队列语义 -RocketMQ 目前的队列含有以下语义: +RocketMQ Physical Queue 含有以下语义: - 队列内的Offset,单调递增且连续 - 属于同一个 Broker 上的队列,编号单调递增且连续 -这次修改需要保障的语义: +LogicQueue 需要保障的语义: - 队列内的offset,单调递增 -这次修改可以不保障的语义: +LogicQueue 可以不保障的语义: - 队列内的 offset 连续 - 属于同一个 Broker 上的队列,编号单调递增且连续 @@ -75,7 +76,7 @@ offset不连续最直接的问题就是: #### LogicQueue 定义 -当前 MessageQueue的定义如下 +当前 MessageQueue 的定义如下 ``` private String topic; private String brokerName; @@ -100,18 +101,18 @@ private final ConcurrentMap