-
业务背景: 消息队列在小米落地的业务背景 -
架构与关键问题: 小米自研分布式消息队列 Talos 的架构和关键问题 -
性能与资源优化: 业务爆发式增长,Talos 在性能和资源方面的挑战与实践经验 -
平台化效率: 举例 Talos 在平台化过程中提升效率的一些实践 -
未来规划: 小米消息中间件的规划和愿景
作者批注:存储计算耦合的架构在扩容和故障转移时都需要进行数据搬迁;故障恢复时一般要经历复杂的算法先选举 Leader,且提供服务前要先保证各副本数据是一致的
作者批注:当时开源的消息队列在多租户方面都不是很完备,更多倾向在数据管道或解耦RPC调用的特性上
1)计算层由于无状态,管理调度都非常简单,天然支持水平扩展,扩容迅速; 故障转移也更加快速简单,不需要关心数据的同步和一致性,专注于计算逻辑;
2)存储层专注数据管理的高可靠和高可用,使用现有比较成熟的存储系统,可以间接降低系统复杂度;
作者批注:这里的 Partition 在物理上实际对应的是 HDFS 的一个目录
-
日处理消息数超过 2万亿条,日消息峰值 4千万条/秒,日处理数据量 1.3PB -
Topic 总数 13000+,下游的作业数 15000+,接入业务数量 350+
1)Talos 会获取每个物理节点历史的日均流量,根据集群节点个数,计算出每个节点平均的日均流量期望值
2)以期望值为标准,大于期望值的节点会被减少虚拟节点数量,反之会被增加虚拟节点
3)虚拟节点变化后会重新计算 Partition 的分布,然后根据 Partition 流量算出各个节点新的流量分布
4)重复多轮调整直到流量分布达到预期阈值
-
持续贴紧业务,价值输出
-
首先,我们需要做好重要特性赋能关键业务。 例如 Transaction 落地电商金融等场景,Replication 落地云服务等场景。
-
其次,小米在电商、金融的发展越来越迅速,作为企业级消息系统,需要为此做好准备。 我们希望未来能够打造金融级的分布式消息系统,为电商金融等场景提供靠谱的中间件能力; 为此,业务对系统的高可靠、一致性、高可用、性能等方面都会提出更高的要求和挑战,比如高可用会需要真正的同城多活、异地多活等能力;
-
持续学习业界,建设小米中间件技术能力 -
-
消息中间件近年的发展开始慢慢引入算力,通过轻量化计算,使得消息系统从传输数据向理解数据发展,我们希望借此将小米的消息中间件打造成智能传输+计算的服务平台,为业务提供更好的平台化服务; -
作为云原生时代架构的重要组成部分,消息中间件也需要持续跟进业界,进行 ServiceMesh 与 Serverless 架构的探索和升级; 实际运维过程中,我们发现传统富客户端确实会带来各种各样的耦合问题,我们希望探索 Message Mesh 这种下一代消息传输架构,提升业务效率。
新福利:
从11月01日开始至12月06日截止,一共五周时间,每周五我会从公众号选择阅读+转发综合最多的读者一名,免费包邮送实体新书《Flink入门与实战》,留言互动起来吧~
上周获奖名单:布拉没有格
猜你喜欢 2、美团 MySQL 数据实时同步到 Hive 的架构与实践
过往记忆大数据微信群,请添加微信:fangzhen0219,备注【进群】
-