chenzlalvin commented on code in PR #301: URL: https://github.com/apache/rocketmq-site/pull/301#discussion_r984174155
########## i18n/en/docusaurus-plugin-content-docs/version-5.0/08-流计算/30RocketMQ Streams Overview.md: ########## @@ -0,0 +1,36 @@ +# RocketMQ Streams 概览 +RocketMQ Streams是基于RocketMQ的轻量级流计算引擎。他能以SDK方式被应用依赖,无须部署复杂的流计算服务端即可获得流计算能力。 +因此具有资源消耗少、扩展性好、支持流计算算子丰富的特点。 + +## 整体架构 + + +数据从RocketMQ中被RocketMQ-streams消费,经过处理最终被写回到RocketMQ。 +如果流处理任务中含有算子groupBy,则需要将数据按照Key进行分组,将分组数据写入shuffle topic。后续算子从 +shuffle topic消费。如果还涉及count之类有状态算子,那么计算时需要读写状态,在窗口触发之后将计算结果写出。 + + +## 消费模型 + + + +计算实例实质上是依赖了Rocket-streams SDK的client,因此,计算实例消费的MQ依赖RocketMQ rebalance分配, +计算实例总个数也不能大于消费总MQ个数,否则将有部分计算实例处于等待状态,消费不到数据。 + +一个计算实例可以消费多个MQ,一个实例内也只有一张计算拓扑图。 + +## 状态 + + +对于有状态算子,比如count,需要先对count算子进行分组,然后才能求和。分组算子groupBy会将数据按照分组的key重新写回RocketMQ,并且使相同key写入同一分区(这一过程称作shuffle), +保证这个含有相同key的数据被同一个消费者消费。 他的状态本地依赖RocksDB加速读取,远程依赖RocketMQ做持久化,在做checkpoint时将本地RocksDB中状态写入到RocketMQ中。 Review Comment: 同上 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
