摘要:华为日历月活高达数千万,这使其对支撑业务的数据库提出了巨大挑战:高并发场景下,数据库如何实现快速扩容?海量数据运行,如何确保业务稳定性?
本文分享自华为云社区《稳定支撑千万级月活,华为日历背后的英雄》,作者: GaussDB 数据库。
随着科技进步,手机日历早已融入我们的生活,不仅可以记录时间、提醒重要日程和重要纪念日,还可以推荐星座信息、历史趣事、体育赛事等。
华为日历就是这样一款人性化的App,不仅功能全面、内容丰富,还提供了个性化功能,使用者可以根据个人习惯设置信息订阅管理,极大提升了用户的体验感。
我们知道,任何一款App,在运行时都将产生大量的数据,这时就需要一款大容量的数据库来支撑。而数据库也并不是仅仅能存数据就行,最重要的是能够满足这个App的特殊要求,例如存取速度、稳定性、高并发等。
华为日历月活高达数千万,这使其对支撑业务的数据库提出了巨大挑战:高并发场景下,数据库如何实现快速扩容?海量数据运行,如何确保业务稳定性?
这不得不提华为日历背后的英雄——华为云云原生数据库GaussDB(for Cassandra)。
华为云GaussDB(for Cassandra) 是一款兼容Cassandra生态的云原生NoSQL数据库,支持类SQL语法CQL。在华为云高性能、高可用、高可靠、高安全、可弹性伸缩的基础上,提供了一键部署、快速备份恢复、计算存储独立扩容、监控告警等服务能力,满足华为日历对数据库的要求,就拿上面的赛事查询场景来说:
GaussDB(for Cassandra)不仅在读写性能上优势突出,在数据的可靠性上也表现优异。由于GaussDB(for Cassandra)采用多节点分布式架构,任意盘或节点故障,读写操作会自动切换到其他节点,理论上可以达到N-1个节点故障容忍,即集群任意一节点存活就可以提供完整服务。
GaussDB(for Cassandra)在兼容原生Cassandra的基础上,具有安全可靠、超强读写、弹性扩展、便捷管理等特点。通过VPC、子网、安全组、SSL加密传输以及细粒度权限控制等多层安全防护体系,完美地保护了数据库和用户的隐私。
同时,华为云GaussDB(for Cassandra)采用基于计算存储分离的分布式架构,能够实现分钟级别的计算节点扩容和秒级别的存储扩容,保证了扩容过程不干扰线上业务,具备极强的弹性扩展能力,及时应对突发流量。
此外,华为云GaussDB(for Cassandra) 还提供可视化的实例管理平台,可以很便捷地对实例进行创建、删除、备份恢复,以及删除和增加节点,而且一键操作即可。
在GaussDB(for Cassandra)的支持下,华为日历在保障其数据可靠性的基础上,轻松应对了高并发场景,保障了业务的顺利进行,给每一位使用者带来极大的便利,真正意义上服务了每一位用户。
在华为终端云应用中,GaussDB(for Cassandra)已支撑包含华为日历在内的70+核心手机服务在线稳定运行,总节点数10000+,总数据量XX PB,业务请求每秒千万级。
除此之外,GaussDB(for Cassandra)还在很多场景中有着广泛的应用,如个性化推荐(海量数据快速存取、用户行为分析),社交App(点赞、评论、回复)等诸多场景。
尽管如此,上述的场景也只是GaussDB(for Cassandra)的冰山一角,华为云GaussDB(for Cassandra)将持续推出更多新特性,让每个用户都能享受更加稳定、高效的数字化服务。
针对改动范围大、影响面广的需求,我通常会问上线了最坏情况是什么?应急预案是什么?你带开关了吗?。当然开关也是有成本的,接下来本篇跟大家一起交流下高频发布支撑下的功能开关技术理论与实践结合的点点滴滴。