0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

无惧百万级并发,GaussDB(for Cassandra) 让华为 Push 推送服务更快触达

jf_21561199 来源:jf_21561199 作者:jf_21561199 2023-06-29 16:48 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

推送服务(PushKit)是华为提供的消息推送平台,建立了从云端到终端的消息推送通道。通过集成推送服务,您可以向客户端应用实时推送消息,让应用更精准触达用户,是开发者提升用户感知度和活跃度的一件利器。

wKgaomSdRV-ANyFuAAD14-4tW8Q615.png

华为云 GaussDB(forCassandra)是一款基于计算存储分离架构的分布式数据库,致力于提供稳定可靠、超高并发,兼容 Cassandra 生态、弹性伸缩、一键部署、快速恢复、监控告警的分布式数据库服务,在 Push 业务的高效架构建设中,起到了关键的作用。

业务挑战

Push 服务能够协助开发者快速触达用户,其提供的系统级通道推送速度每秒最高可达百万级,消息量每日百亿级,并且支持实时消息回执。如此高到达率的背后,是因为 Push 使用了大量分布式架构、高性能队列、大数据分析、数据库、AI 等技术,用来支撑实时推送、精准送达业务的高效开展。

Push 的主要业务链路是发送上行消息和下行消息,接下来我们从发送下行消息流程来了解业务在哪些场景上用到了数据库,以及对数据库的要求有哪些?

下行消息交互图如下所示:

wKgZomSdRV-ANV9ZAABRPxqP9Q8226.png

当用户设备网络条件良好且不拥堵的情况下,华为 Push 服务器在收到消息后,会先将消息存入高性能队列中,然后队列消费消息发送给用户设备。但是当用户设备处于弱网、网络异常,或不在线、熄屏状态时,消息无法到达设备,或此时发送消息价值较低。Push 业务为了保障消息不丢失,以及提升消息的有效率,利用数据库为底座,来支持离线消息缓存能力。

离线消息缓存是指当消息到达华为 Push 平台后,如果设备不在线,华为 Push 平台会将消息缓存起来,等到设备上线后,华为 Push 平台会将缓存的消息再次推送给用户。如果用户很长时间不在线,这些缓存的消息默认保存 24 小时,最长保存 15 天,超期的消息会被 Push 平台丢弃。

此时,在数据库的选型上就需要考虑以下几个问题:

推送速度每秒百万级,极端场景下,大部分写入数据库,会有每秒百万写入请求,数据库需要具备超高的写入能力;

当设备恢复正常状态时,消息会从数据库中读出发送给用户,消息的实时性会直接影响到消息的价值,此时就要求数据库的读时延低且长尾时延稳定;

推送的消息中,多与时事热点相关,容易引发流量突增,且不可预知,这就要求数据库具有快速弹性伸缩的能力;

为达成 AI 智能推送的能力,可能需要对数据库中的数据进行数据挖掘和分析,从而实施智能推送策略,数据库需支持与主流大数据引擎兼容的接口和解决方案。

为什么选择 GaussDB(forCassandra)?

基于以上挑战,Push 业务经过一系列技术选型,最终选择了 GaussDB(forCassandra)数据库。GaussDB(forCassandra)凭借丰富强大的特性,可以帮助 Push 业务很好地应对消息缓存的挑战:

从请求量上看,GaussDB(forCassandra)轻松支持千万级并发访问,高并发不在话下;

从时延上看,GaussDB(forCassandra)除了本身具备超低时延的能力外,在并发量大的情况下,可通过扩容和规格变更,增加分区和负载均衡保证业务时延基本无变化;

从弹性伸缩上看,GaussDB(forCassandra)基于存算分离架构,支持秒级存储扩容,分钟级计算扩容,轻松应对流量高峰;

从兼容能力看,GaussDB(forCassandra)支持 CQL 语法和灵活的数据定义,同时兼容主流的批式/流式处理引擎(Spark/Flink 等),且提供动态增量+全量的解决方案,供大数据分析引擎接入,充分满足不同类型数据的接入需求。

如何利用 GaussDB(forCassandra)提升消息缓存体验

下面,我们将从具体的几个技术改进来聊聊,GaussDB(forCassandra)是如何帮助 Push 业务获得更好的消息缓存体验。

降本增效

降低 Push 集群对数据库请求量:

表结构设计时,将同一用户设备的多条信息存入同一 partition 中

在读取时,可使用范围查询将同一用户设备的多条信息批量查出,且时延较低

在写入时,使用 Batch 写入,降低客户端与数据库的交互次数

降低存储使用量:业务科通过 TTL、范围删除、单行删除等多种手段,根据业务情况灵活使用达到数据消亡的目的,降低存储用量。

弹性伸缩,热点无忧

每当出现重大新闻,各大应用均产生了海量的推送消息,Push 业务收到消息后,流量激增,集群规模难以支撑巨大的流量。但依靠 GaussDB(forCassandra)的快速扩容能力,Push 业务实现了分钟级别的计算扩容,业务不受影响,而且当流量回归正常后,可以进行缩容降低成本。

超强可靠性,底座无忧

GaussDB(forCassandra)不仅在读写性能上表现优异,在数据可靠性上也表现突出。因为采用多节点分布式架构,当任意盘或节点出现故障,读写操作会自动切换至其他节点,理论上可以达到 N-1 个节点故障容忍,即集群任一节点存活即可提供完整服务。同时还支持异地双活,实现业务恢复和故障恢复解耦,Region 级高可用。

综上所述,GaussDB(forCassandra)为 Push 业务提供了高效、稳定、安全的数据库底座,助力 Push 业务实现了离线消息缓存架构。我们相信,借助 GaussDB(forCassandra),Push 业务在消息推送领域,会为开发者提供更优质的服务和工具,助力企业提升业务价值和用户体验。

审核编辑黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 华为云
    +关注

    关注

    3

    文章

    2836

    浏览量

    19370
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    精准控+压感“芯”体验!汇顶发布全新Newton Touchpad压力触控板方案

    近日,汇顶科技正式推出全新Newton Touchpad控+压力感应二合一触控板方案,新方案实现单颗芯片集成控和压感功能,相比传统分立芯片方案,该方案的控和压感响应速度更快
    的头像 发表于 04-20 16:49 9755次阅读
    精准<b class='flag-5'>触</b>控+压感“芯”体验!汇顶发布全新Newton Touchpad压力触控板方案

    Java并发编程的“基石”——多线程概念初识

    万卡集群中,每一秒都有数百个任务在排队、挂起、抢占资源。如果调度器出现毫秒的延迟或死锁,意味着价值数百万的算力在空转。因此,算力调度系统对高并发、低延迟和绝对稳定性的要求,达到了苛刻的极点。这正是
    发表于 04-16 18:50

    微课-掌握Java并发编程的“基石”,入门并发编程

    处理并发请求的能力,直接等同于企业创造财富的速度。从双十一秒杀瞬间涌动的千亿交易洪流,到春节期间十几亿人同时在线的红包雨,再到短视频平台每秒百万次的海量推荐计算,这些现象商业成功的
    的头像 发表于 04-14 14:25 81次阅读

    德力西电气打造智能服务新引擎

    在电气行业服务需求向即时化、个性化、全周期升级的当下,客户对服务效率、体验透明度、全场景的要求日益提升。
    的头像 发表于 03-11 15:14 440次阅读

    Go 语言高并发服务设计与性能调优实战:从万百万并发的演进之路

    在2026年的今天,Go 语言已成为高并发后端服务的首选语言。根据 Stack Overflow 最新开发者调查: 指标 数据 Go 语言采用率 后端服务中占比 42% 平均并发能力
    发表于 02-18 19:19

    一文说透了如何实现单片机的多任务并发

    ,每个任务仅在分配到 CPU 时间片时才能执行。时间片轮转法可以保证所有任务都有机会被执行,是一种非常公平的调度算法。 2. 优先调度法 优先调度法是多任务并发中另一种非常常见的调度算法,它的核心
    发表于 01-06 06:46

    Amphenol ICC SD Express Push - Push连接器:高速数据传输新选择

    Amphenol ICC SD Express Push - Push连接器:高速数据传输新选择 在电子设备不断追求高速数据传输的今天,存储设备与主板之间的连接技术显得尤为重要。Amphenol
    的头像 发表于 12-15 10:15 453次阅读

    电能质量在线监测装置支持的数据推送频率是多少?

    电能质量在线监测装置的数据推送频率 可灵活配置 ,根据数据类型(稳态 / 暂态 / 事件)和应用场景(电网关口 / 工业用户 / 新能源并网)的不同, 覆盖从毫秒到小时的广泛范围 ,主流装置支持
    的头像 发表于 12-05 15:07 551次阅读
    电能质量在线监测装置支持的数据<b class='flag-5'>推送</b>频率是多少?

    ICNL9951C控显示更丝滑

    功能塞进一个芯片,而是通过深度优化显示更清晰、控更精准。 为什么这颗芯片能让平板脱胎换骨? 传统方案需要两颗独立芯片分别处理显示和控,而ICNL9951C的 TDDI(控与显示
    的头像 发表于 10-28 08:49 652次阅读

    Nginx高并发优化方案

    作为一名在生产环境中摸爬滚打多年的运维工程师,我见过太多因为Nginx配置不当导致的性能瓶颈。今天分享一套完整的Nginx高并发优化方案,帮助你的系统从10万QPS突破到百万级别。
    的头像 发表于 08-13 15:51 1211次阅读

    时识科技推出百万像素工业事件相机

    时识科技(SynSense)发布百万像素高分辨率、高成像质量、高动态范围的工业事件相机——Syn-Shining HD(闪灵系列工业相机)。
    的头像 发表于 07-31 11:29 1437次阅读

    温补晶振:如何时钟信号温度波动?

    的频率漂移问题,始终是传统晶振的“阿喀琉斯之踵”。当工作环境从-40℃的极寒切换到85℃的高温,普通晶振的频率偏差可能高达百万分之五十(±50ppm),足以高速通
    的头像 发表于 06-24 15:11 796次阅读
    温补晶振:如何<b class='flag-5'>让</b>时钟信号<b class='flag-5'>无</b><b class='flag-5'>惧</b>温度波动?

    鸿蒙5开发宝藏案例分享---应用并发设计

    到性能调优,这些案例都是华为工程师的血泪经验结晶。下面用最直白的语言+代码示例,带你玩转HarmonyOS并发开发! ?一、ArkTS并发模型:颠覆传统的设计 传统模型痛点 graph LR A[共享
    发表于 06-12 16:19

    医疗设备「秒懂人心」:CCLink IE转DeviceNet控方案全攻略

    在医疗自动化领域,设备间无障碍沟通是个老大难问题。特别是在医疗行业,设备通信必须做到\"零延迟、零误解\"。今天我们来聊聊:耐讯CC-Link IE网络如何高效连接
    发表于 06-10 14:48

    手把手教你如何调优Linux网络参数

    在高并发网络服务场景中,Linux内核的默认网络参数往往无法满足需求,导致性能瓶颈、连接超时甚至服务崩溃。本文基于真实案例分析,从参数解读、问题诊断到优化实践,手把手教你如何调优Linux网络参数,支撑百万
    的头像 发表于 05-29 09:21 1184次阅读