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

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

3天内不再提示

即时通讯系统为什么选择 GaussDB(for Redis)?

YG科技 来源: jf_81200783 作者: jf_81200783 2023-06-27 23:07 次阅读

每当网络上爆出热点新闻,混迹于各个社交媒体的小伙伴们全都开启了讨论模式。一条消息的产生是如何在群聊中传递的呢?让我们一起来探索即时通讯系统(IM)的原理。

IM 系统架构的原理

当你在群聊“相亲相爱一家人”中,发送了一条“我找到女朋友了,今天带回家吃饭”,你自然是希望全家人都收到你的喜讯,为你女朋友的到来分头准备。那么正常的流程应该是这样:遍历群成员、查询每个成员的在线状态、如果小伙伴们在线则实时进行推送,如果小伙伴们不在线则暂存至离线库待上线后主动拉取。

这种模式就是传统的 IM 架构,由于发送成功的消息不会落入离线库,因此聊天记录多端漫游无法实现。如果在线用户推送发生异常,会导致个别人员丢失关键发言,错失重要信息。为了保证消息存储的可靠性,我们对 IM 系统架构进行了优化,不管成员是否在线都要先把消息和发送对象存储起来,再进行推送。流程变成:遍历群成员、为群聊的每一个人对应的消息队列都存一份消息、查询每个成员的在线状态、对在线成员进行推送。这就是所谓的写扩散模型。

这里显然还存在一个问题,我们向每个小伙伴的消息队列中都存储了相同的“我找到女朋友了,今天带回家吃饭”消息,对磁盘和带宽造成了很大的浪费,这是写扩散的最大弊端。所以我们继续优化,群消息实体存储一份,用户只存消息ID索引。流程优化为:遍历群聊的成员、先存一份消息实体、群聊所有人都存一份 ID引用、查询每个成员的在线状态、对在线成员进行推送。这就是所谓的读扩散模型。

简单总结下:

1.读扩散:读取操作很重,写入操作很轻,资源消耗相对小一些。

2.写扩散:读取操作很轻,写入操作很重,资源消耗相对大一些。

IM 系统架构优化实践

接下来,让我们使用 GaussDB(forRedis)来实现一个简单的 IM 应用。

wKgaomSa-0OALs7nAAD14-4tW8Q465.png

使用 GaussDB(forRedis)的 List 类型实现一个消息队列,防止发送端瞬时高流量会压爆消息处理模块;

收到消息后,先生成一个全局唯一 ID 标识该信息,将消息 ID 和消息内容存入 String 类型的消息存储库中,如果消息字段复杂也可以考虑使用 Hash 类型;

对于消息中可索引的信息,将消息的索引信息存入 Zset 类型的消息索引库中,这样无论是接收者还是发送者,都可以按照一定规则对历史消息进行检索;

通过查询 Set 类型的消息关系群组库,查询该信息的接收者集合,这个集合可以根据一定的规则动态增删;

将消息 ID 推入 Stream 类型的消息同步库,每个 Stream 对象对应一个接收者,接收者可以通过 XRANG 命令获取一个范围内的未读信息 ID;

最后,接收者再通过这组 ID,从消息存储库中读取消息原始内容,即完成了一次消息传递。

WhyGaussDB(forRedis)?

IM 系统有哪些痛点?高斯 Redis 如何解决这些痛点?

开源 Redsi 数据库可靠性差,甚至丢数据,会直接导致 IM 系统瘫痪。

GaussDB(forRedis)对数据进行分片,在故障场景下可以自动进行接管,最多可以满足 N-1 个计算节点故障;存储层使用华为自研的企业级存储池 DFVPool,基于分布式、强一致、高性能的先进架构,实现 3AZ6 副本存储,保证了在任何时间点的数据强一致,故障情况下数据不丢失。

大流量、高并发场景如何支持连接管理,按业务况分散压力?

GaussDB(forRedis)可以满足 IM 系统对可用性的要求,客户端程序通过 ELB 接入 GaussDB(forRedis)实例,可实现自动负载均衡。

突发的高流量、大量的历史消息数据如何处理?

GaussDB(forRedis)采用先进的存算分离架构,在 IM 系统持续运营的过程中,如果出现突发流量,可以迅速对计算层资源进行秒级扩缩容,快速扛住流量尖峰;历史消息持续增长时,也可以单独对存储层资源大小进行秒级动态调整,最高可扩容至 PB 级。

GaussDB(forRedis)广泛适用于社交媒体、游戏、电商、推荐系统等领域,在海量并发场景具备极强的高可用能力。如果你需要一款稳定可靠的高性能企业级 KV 数据库,不妨试试 GaussDB(forRedis)。

审核编辑黄宇

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

    关注

    0

    文章

    68

    浏览量

    12044
  • 华为云
    +关注

    关注

    3

    文章

    2155

    浏览量

    16807
收藏 人收藏

    评论

    相关推荐

    手机对讲即时通讯系统

      手机对讲即时通讯系统    IP集群调度系统提供了手机到手机、手机到PC、PC到手机、PC到PC的多媒体协同通信能力,可以
    发表于 07-28 22:22

    即时通讯软件哪家好?企业即时通讯怎么选择

    `随着企业信息高速发展,公有云即时通讯软件,其安全和娱乐性的隐患,在企业内部沟通中的效率日趋低下,导致内部管理混乱。浪费了时间和精力的同时,又拖低了工作效率。对于大型企业来说,日常企业即时通讯产生
    发表于 08-09 15:16

    即时通讯是怎么做到的?

    的PC机,这样双方的即时文字消息就不通过 IM服务器中转,而是通过网络进行点对点的直接通讯,这称为对等通讯方式(Peer To Peer) 。在商用即时通讯
    发表于 01-21 10:41

    请问树莓派与PC端在局域网内如何运用python实现即时通讯

    请问树莓派与PC端在局域网内如何运用python实现即时通讯
    发表于 09-18 08:40

    玩转OpenHarmony社交场景:即时通讯平台

    的内部私有化。设备端:DAYU200(RK3568)开发板,OpenHarmony 3.1 release系统。二、即时通讯实现原理想要实现多个设备之间的无障碍即时通讯,需要多台终端设备、终端应用和服务
    发表于 01-03 15:46

    多服务器分布式即时通讯系统模型的设计

    即时通讯是当前Internet 最流行的通讯方式之一,为克服传统的单服务器模式的一些缺点,本文提出一种新的即时通讯系统模型。该系统模型采用多
    发表于 09-11 16:46 25次下载

    Lotus即时通讯工具将与雅虎Google实现互通

        1月24日消息,根据达成的交易,IBM公司Lotus Sametime即时通讯服务的用户将能够与AOL、雅虎的即时通讯用户“交谈”。
    发表于 03-07 20:47 715次阅读

    即时通讯详解

    即时通讯详解1. 引言 2. 即时通讯背景知识
    发表于 08-05 09:55 2844次阅读

    环信即时通讯

    Android环信即时通讯。。。。。。。。。。。。。。。。
    发表于 05-17 16:41 1次下载

    基于XMPP的即时通讯系统设计方案

    在这个快节奏的时代,互联网对人们的生活带来了极大的便利,人们的交流方式不在局限于面对面的交谈或者周期漫长的书信,通信方式越来越多样化而且越来越简单。即时通讯是随着网络技术的高速发展而兴起的一种
    发表于 11-03 14:51 6次下载
    基于XMPP的<b class='flag-5'>即时通讯</b><b class='flag-5'>系统</b>设计方案

    区块链IM即时通讯系统开发技术

    决这一现状我们开发了一款区块链IM即时通讯系统,IM即时通讯系统主要是有直播、对接交易所、空间、商城等各种管理应用,一站式进行数字资产交易管理的即时
    发表于 06-07 15:46 2747次阅读

    区块链社交软件IM即时通讯系统搭建

    和币圈普通玩家一起交流,分享币圈有效信息,避免信息延迟,延误,让用户接受有用资讯,做出正确的投资选择。利用区块链的去中心化避免信息单一和信息不透明话。区块链IM即时通讯系统不只是针对国内的币圈用户,更是
    发表于 08-17 09:33 1093次阅读

    企业为什么需要即时通讯,它会带来哪些优势

    企业需要即时通讯的一个很重要的理由就是企业即时通讯的组织架构有助于内部沟通联结。 企业即时通讯特有的组织结构树型目录与成员名片,这些特点对于能够使异地办公的公司成员也能够如同处在同一间办公室,无需
    发表于 07-19 10:51 1155次阅读

    拳头产品|海泰虎讯,新一代安全即时通讯系统

    即时通讯系统是目前互联网上最为流行的通信方式,各种各样的即时通讯软件也层出不穷。随着移动办公的快速普及,即时通讯软件在移动办公中得到越来越广泛的应用,已经成为日常办公软件的一部分。
    的头像 发表于 11-01 08:57 451次阅读

    基于NAT穿透P2P即时通讯系统的设计与实现

    电子发烧友网站提供《基于NAT穿透P2P即时通讯系统的设计与实现.pdf》资料免费下载
    发表于 10-27 09:44 0次下载
    基于NAT穿透P2P<b class='flag-5'>即时通讯</b><b class='flag-5'>系统</b>的设计与实现