rocketmq官微发布了一篇RocketMQ 5.0: 存储计算分离新思路的文章,讲述了5.0以及后续版本的改造方向,核心就是存储计算分离,使得存储模块和计算模块互不干扰,能各自进行扩缩容。更加云原生 😃
文中对现有问题和新架构能解决哪些问题都做了解释,感觉受益匪浅,于是做下笔记,加深理解。
建议看原文,因为笔记只记录了理解的部分,看不懂的部分都用…省略。
痛点
富客户端
所谓富客户端,就是客户端SDK集成功能很多,很重。目前rocketmq SDK干的活包括:顺序、广播消费,消费者负责均衡,重试,流控等等
这就有以下弊端
-
修改(或者是bug fix)上述功能中的一个时成本很高,因为需要让用户升级SDK版本,用户升级SDK需要修改业务代码的依赖文件(比如go.mod)、编译、CR&合并到主分支、上线… 如果SDK用户广泛(比如整个集团都在用),推动业务升级成本会极高
-
难以与service mash、dapr等云原生概念配合
-
高质量的多语言客户端维护成本高
…
计算存储一体化
目前rocketmq的Broker计算存储啥都干
-
计算:管理客户端连接、鉴权、编解码…
<