前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用t-io从零写一个像微信的IM(05):架构设计

用t-io从零写一个像微信的IM(05):架构设计

原创
作者头像
谭聊
修改2021-01-05 17:57:32
6000
修改2021-01-05 17:57:32
举报

关于架构

将帅无能,累死三军;架构不行,耗死码农。 架构之于软件,同地基之于大厦。 地基腐则大厦塌,架构烂则软件败

架构图

架构解说

1. 多级缓存

两级是使用较多的一个流程,所谓两级缓存指的是本地缓存和分布式缓存,当本地缓存没有命中时,则去分布式缓存中获取数据;而本架构中说到了多级缓存,是将本地缓存又分为拦截器之前的缓存和业务数据缓存。拦截器之前的缓存指的是收到请求时,直接从请求路径中获取缓存,如果命中则直接返回;业务数据缓存比较大众,本文略过介绍

2. 协议适配/转换

web型的客户端,用websocket会比较自然舒服;非web型的客户端如安卓、IOS,用普通的socket会比较舒服简单。于是服务器就需要同时支持普通socket和websocket,为了减化业务开发,统一消息体结构,本架构特别放置了协议适配器和协议转换器,用于将不同协议的Packet统一成业务需要的Packet。好在t-io内置了协议转换器,也提供了端口数据共享的机制,所以在实现本架构的意图时就变得相对简单。

3. 流量控制

流控是每个系统必备的一个功能了,勿用多言,实现起来并不复杂

4. 任务队列

为了提升系统的流畅度,很多操作都会变成异步的,队列成为必不可少的一个组件

5. t-io集群

t-io企业版的集群版,已经内置了集群能力,使用起来也相当简单,本系统做了一个集群开关,可随时对集群和非集群进行切换

下集预告

用t-io从零写一个像微信的IM(06):IM集群设计

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 关于架构
  • 架构图
  • 架构解说
    • 1. 多级缓存
      • 2. 协议适配/转换
        • 3. 流量控制
          • 4. 任务队列
            • 5. t-io集群
              • 下集预告
              相关产品与服务
              即时通信 IM
              即时通信 IM(Instant Messaging)基于腾讯二十余年的 IM 技术积累,支持Android、iOS、Mac、Windows、Web、H5、小程序平台且跨终端互通,低代码 UI 组件助您30分钟集成单聊、群聊、关系链、消息漫游、群组管理、资料管理、直播弹幕和内容审核等能力。适用于直播互动、电商带货、客服咨询、社交沟通、在线课程、企业办公、互动游戏、医疗健康等场景。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档