@@ -632,42 +632,32 @@ transaction | 事务开关,开启消息事务性保证只会成功执行一次
632
632
633
633
### 5.7 版本 v1.4.0 Release Notes[ 迭代中]
634
634
635
-
636
-
637
-
638
635
### Tmp
639
636
```
640
637
1、特性:
641
- - 特性:存算分离、水平扩展、高性能(TPS:Mysql单机1W/Blade 10W)、海量消息(Mysql日百万/Blade日十亿)、消息轨迹、多消费模式(分片/串行/广播)、延迟消息、失败重试(固定/增长/指数)、
642
- - 其他:失败告警、AccessToken、容器化;
638
+ - 存算分离:Broker 计算;Blade/Mysql 存储;
639
+ - 水平扩展:无状态;
640
+ - 高吞吐:并行计算、异步计算;(TPS:Blade 10W / Mysql单机1W)
641
+ - 海量消息:(Mysql日百万/Blade日十亿)
642
+ - 消息轨迹:消息日志,追溯消息记录;
643
+ - 多消费模式:Group + Partition,支持 广播消费、串行消费、分片消费;
644
+ - 延迟消息:支持自定义延迟时间;
645
+ - 失败重试:支持固定间隔策略、线性退避策略、指数退避策略等;
646
+ - 失败告警:
647
+ - AccessToken:
648
+ - 容器化:
643
649
2、设计:
644
650
- Broker:
645
- - Manage:
646
- - User:服务授权
647
- - AccessToken:能力
648
- - AppName:
649
- - 能力(注册、节点动态更新;用于Topic数据分片;);【AppName维度,在线实例信息:实例总数 = instanceNum;序号 = instanceIndex;partitionScope = 3~5;】
650
- - 模型:Instance注册:字段(appname + uuid + register_heartbeat);app维度20s汇总一次,同步至app表;时钟打平,从0开始每20s一次; 【TODO - 01:注册Helper(App+Topic)逻辑;】
651
- - Topic:
652
- - 能力(定义管理 + 查看注册节点 / 节点分片分配情况;);【Topic】【名称】【负责人】【告警邮箱】【状态】【存储策略】【partition数量】【优先级】【重试次数】【重试间隔策略】【归档策略】 【TODO - 02:Topic管理】
653
- - 模型:topic + store + partitionCount + level + author + alarm_email + timeout
654
- - Message:
655
- - 能力:查看 + 管理(增 + 该状态 + 归档);消息队列,物理消息队列;【10min一次,自动数据归档;】 【TODO - 03:消息管理能力;更新 + 归档】
656
- - 模型:msgid + msgbody + topic + group + partitionId + status + retryCount + intervalTime + effectTime + consume_log;
657
- - 属性:
658
- - topic:关联 消息主题;
659
- - group:数据广播;【topic向上;广播;】
660
- - uuid序号:并行处理
661
- - partitionKey:分区Key进行hashcode取模,会转成分区ID,限制 [0-10000] 之内;结合Consumer在线列表,匹配消费分片范围,实现并行分片消费消息;【topic向下;并行;同sId保障顺序;根据消费者 partition 信息计算 范围;】
662
- - MessageArchive:
663
- - 能力:定期讲终止态消息,同步归档,清理原始表; 【TODO - 04:消息归档数据查看;】
664
- - 模型:同 message;
665
- - Registry:
666
- - 能力:提供 Consumer 注册、动态发现能力;消息分片消费时使用;
667
- - Broker
668
- - 能力:Server:提供消息存储、读写能力;
651
+ - Manage:控制台;
652
+ - User:服务授权;
653
+ - AccessToken:管理 + 【01: AccessToken本地缓存(Helper)】
654
+ - AppName:管理;
655
+ - Topic:Topic管理;
656
+ - Message:Message管理 + 手动归档; 【TODO - 02: Message归档(Helper);自动 Message + MessageArchive,滚动清理及归档;】
657
+ - MessageArchive:MessageArchive查看 + 手动清理;
658
+ - Registry:注册中心; 【TODO - 03: Registry注册(Helper);注册心跳异步写 + 定期本地缓存(计算 + 更新至AppName/app&instance&topic)】
669
659
- OpenAPI:统一“Token验证”(http+gson;借助 xxl-tool 实现通用 http-rpc 能力;)
670
- - a 、注册:app+topic初始化 + 节点心跳注册/摘除;
660
+ - a 、注册:app+topic初始化 + 节点心跳注册/摘除; 【TODO : 转发 Registry注册(Helper) 】
671
661
- 数据格式:
672
662
- app01 :
673
663
- instanceUuid01:
@@ -690,18 +680,18 @@ transaction | 事务开关,开启消息事务性保证只会成功执行一次
690
680
- instance02:partitionScope:[5001-10000]
691
681
- groupList:[default、group01、group02]
692
682
- app01:基础信息;
693
- - b、生产:
683
+ - b、生产: 【TODO - 04: 消息处理(Helper): 异步写 + 异步更新;】
694
684
- 能力:异步队列,批量写入;处理group广播。
695
685
- 数据格式:topic + group(null广播) + partitionKey(null随机;partitionId [0, 10000]) + msgBody
696
- - c、批量查询(锁定):
686
+ - c、批量查询(锁定): 【TODO: 分topic查询 + 锁定;】
697
687
- 能力:多topic并行查询;单topic分片查询;能力,根据node分配10条,同时锁定。分配不到直接返回。
698
688
- pullAndLock:(topics,group +节点)【生成唯一标识,lock时写入;根据标识判断锁定值;】
699
689
- 数据格式:
700
690
- topic01 + group01 + clientId(计算partitionScope)
701
691
- topic02 + group01 +
702
692
- 查询逻辑:多topic并行查询 + 单topic分片查询 + 每topic每次取10个;
703
693
- 锁定逻辑:针对查询出的数据,更新锁定态;注意超时释放;
704
- - d、消费消息:异步队列,批量更新消费结果;
694
+ - d、消费消息:异步队列,批量更新消费结果; 【TODO:转发 消息处理(Helper) 】
705
695
- Client:
706
696
- Registry 组件:
707
697
- 数据:app + 节点UUID(IP+时间戳) + topics
0 commit comments