亿及流量系统之高性能架构

1、计算与存储分离的架构

随着系统实时流量越来越多,之前的计算平台mysql集群压力越来越大,虽然可以通过增加mysql服务器来解决问题,但是基于成本考虑,我们选择对数据计算平台进行重构。计算与存储分离,使用分布式kv集群来存储大流量数据,slave节点计算时从kv集群抽取数据到mysql临时表,在由mysql进行复杂查询计算。整个架构的核心是大幅缩小计算平台mysql集群的数据规模,从而提高计算能力和速度。同时基于kv集群存储,可以大幅提高存储能力、降低存储成本(相比于mysql存储)。

2、自研纯内存SQL计算引擎

为了进一步提高性能,我们对mysql计算引擎进行改造。原先基于mysql集群进行计算需要经过以下步骤:slave节点发起计算任务、从kv集群中获取数据分片、保存数据分片到数据库临时表、基于mysql执行计算,改造后的架构取消了mysql集群,直接在slave节点发起数据查询、数据计算任务。slave节点包括计算任务执行器、数据分片查询器、内存数据结构、内存计算引擎、数据结果等模块。

3、MQ削峰以及流量控制

如果我们面对的是非实时性写入请求的话,完全可以使用MQ中间件先抗住海量请求,接着做一个中间的流量分发系统,将流量异步分发到kv存储中,同时这个流量系统还可以对高并发请求进行控制。流量控制系统我们主要实现了数据校验、数据过滤、数据分片、数据幂等,流量控制等功能。

4、计算数据的动静分离架构

slave计算节点从kv集群中抽取数据进行内存计算,为了进一步提高性能,对计算数据动静分离,静态数据保存到本地缓存中,动态数据从kv存储中获取。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容