本周阅读了老师推荐阅读的公众号:架构师中的推文《阿里如何实现秒级百万TPS?搜索离线大数据平台架构解读》,感想如下:
首先在阅读的之前,看到题目是,我不明白TPS是什么意思,于是我先百度了TPS的定义,TPS:Transactions Per Second(每秒传输的事物处理个数),即服务器每秒处理的事务数。TPS包括一条消息入和一条消息出,加上一次用户数据库访问。(业务TPS = CAPS × 每个呼叫平均TPS)
TPS是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。
一般的,评价系统性能均以每秒钟完成的技术交易的数量来衡量。系统整体处理能力取决于处理能力最低模块的TPS值。
这是百度百科对TPS的定义,根据我的理解,TPS指的是,一次访问数据库+对数据库进行一次操作。
根据文章题目,我顿时觉得,这基本上是不可能实现的事情,因为数据库访问本事就是一件相对来说比较耗时的事情,就拿SQL、MySQL、Oracle来说,我现在所使用的基本是前两个,Oracle相对来说用的很少,且在数据量较少时,前两个数据库用的极其方便,而要实现秒级百万的TPS,以我现在的知识水平,这对我来说简直是一件不可想象的事情。我继续阅读得知,文章中所提到了一个概念叫搜索离线,我阅读了好几遍文章,我理解的搜索离线是指的是,将一些用户群体常用到的、经常搜索的、共性搜索的东西,放置到离线平台上,从而使其直接通过离线平台获取其大部分所需要的数据,如果这个平台上没有,则再去云端服务层去搜索获取所需要的信息。(个人理解,如有不对评论指出立刻订正)。
那么如果这样做的话,就可以省去很大部分处理查询的时间,可以满足大部分用户的查询需要,只要查询的内容不是特别冷门。
继续阅读得知,阿里的离线平台技术组件中几个重要的模块分别是:
Maat、Bahamut、Blink、Soman、Catalog、Hippo、Swift:
这些名词概念我基本看不懂,只了解过docker等相关知识。继续阅读后文得知在存储与计算方面,这个离线搜索平台使用了基于Hbase的存储架构,以及Flink的计算架构,对于hbase我会使用相关的基本操作,能理解hbase为什么可以缓解对上层数据库的压力。
百度了flink的相关概念得知,如果是hbase负责解决离线数据计算存储的话,那么flink是重点解决的是实时计算场景。
阿里通过构建了搜索离线数据平台,实现了秒级实时百万TPS吞吐的计算能力。该平台不仅可以处理海量的过时数据,还可以对实时数据进行计算监控。通过阅读得知,离线平台目前支持了集团内200多个不同业务线的搜索业务需求,大幅提高了业务迭代的效率,成为搜索中台的重要组成部分。很快离线平台还会在阿里云上与Opensearch/ES结合,为集团外客户提供高可用、高性能的搜索离线数据处理能力。
文章地址:
https://mp.weixin.qq.com/s?__biz=MzIzOTU0NTQ0MA==&mid=2247488245&idx=1&sn=1c70a32f11da7916cb402933fb65dd9f&chksm=e9292ffade5ea6ec7c6233f09d3786c75d02b91a91328b251d8689e8dd8162d55632a3ea61a1&scene=21#wechat_redirect