应用实战:从Redis到Aerospike,我们踩了这些坑

2022-04-14 00:00:00 集群 业务 阶段 灰度 线上

个推专注为开发者们提供消息推送服务多年。通过个推SDK,手机终端与服务器建立长连接,维持在线状态。然而在网络异常等情况下,消息无法实时送达到终端用户,因而推送服务器建立了一份离线消息列表,以待用户重新登录时,进行消息的下发。这部分数据存储在个推Redis集群,整个集群包括主从共百余个实例,key的数量在10亿级别,存储空间在T级别,带来了一定的维护成本和运维挑战。作为个推的后端开发工程师,我们也一直在寻找高性价比的方案。

个推整个集群的QPS在百万级别,若选择使用Aerospike,对比实测下来,我们发现单台搭载单块Inter SSD 4600的物理机,可以达到接近10w的QPS,即几十台机器就可以满足现有的需求,并能够支撑未来较长一段时间的业务需求。

Aerospike的优势

Aerospike是一个高性能、可扩展、可靠性强的NoSQL解决方案,支持RAM和SSD作为存储介质,并专门针对SSD特殊优化,广泛应用于实时竞价等实时计算领域。官方保证99%的操作在1ms内完成,并提供集群数据自动Rebalance、集群感知客户端等功能,且支持超大规模数据集(100T级别)的存储。

作为KV存储,Aerospike提供多种数据类型,其操作方式和Redis比较类似。除基础功能之外,Aerospike还支持AMC控制台、API等多种监控方式,有集群QPS、健康度、负载等多项监控指标,对运维比较友好。支持集群内数据的自动Rebalance,和Redis集群方案相比,维护成本下降不少。

本文主要做一些Aerospike灰度部署、使用方面的经验分享,希望对正在调研或者已经准备使用Aerospike的读者提供一些参考。此外,灰度的理念并不限于Aerospike本身,对其他基础组件的迁移和规划,也能够带来一定的借鉴意义。

数据模型说明

 

相关文章