架构基础:即时通信架构入门理解

问题:即时通信的基础模型?

  • 简单长连接模式
    • 技术:TCP/IP、UDP、WebSocket、MQTT等
  • 节省流量长连接模式:
    • 技术:UDP、压缩、自定义应用程序协议

问题:即时通信的难点有哪些?

  • 计算
    • 信息加密与解密
    • 高性能压缩算法
    • IO的多路复用
  • 通讯成本
    • 压缩成本
    • 瞬时带宽问题
  • 内存
    • 维护连接成本高
    • 维护socket需及时回收,不然易导致内存泄漏
  • 通信的信息(最核心问题)
    • 信息的顺序
    • 离线的消息

问题:如何确定信息的顺序?

  • 全局自增ID
    • ID采用雪花模型。
    • 客户端保留一个ID,客户端带上ID发送同步请求给服务端,服务端根据最新的ID给客户端返回差值的信息,客户端同步信息后更新ID。

问题:如何解决服务器扩容困难问题?

  • 用户的自增ID采用内存数据库存储(定期持久化)
  • 服务器每次申请一大批自增ID

问题:即时通信的架构设计是怎样的?

  1. 客户端从目录服务集群中获取到自己需要访问的自增ID节点。
  2. 访问自增ID节点进行数据同步,该节点如果一直可用,就会跳过第一步,之后一直访问该节点。
    在这里插入图片描述

问题:对比基础模型,上述这种设计的优势有哪些?

  • 脱离长连接模式,节省内存,客户端只需要定期向服务器同步信息即可。
  • 只需要根据uid+序列号简历索引
  • 离线模式下,同步数据只需要确认客户端的ID与服务端的ID就能获取缺少的信息。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

萌白在努力

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值