温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
详细设计与实现。以引言,本文将以转转iim架构为起点,介绍iim相关组件以及组件间的关系,以iim登录和发消息的数据流转为跑道,介绍iim静态数据结构、登录和发消息时的动态数据变化,以iim常见问题为风景,介绍保证iim实时性、可靠性、一致性的一般方案,以高可用、高并发为终点,介绍保证IM系统稳定及性能的小技巧。2M架构回顾。SIM消息收发杠场景说明数据流中以用户A和用户B的对话为例,其中用户A的UD1为1,用户B的UEDV2。右图为用户聊天场景图,下图为用户聊天I系统的数据流转图4数据结构杠联系人说明1 recent asg content最近一条对话消息的内容用于联系人列表中展示最近的消息内容。2 recent red time.
01:01
最近一次读取该绘画消息的时间用于控制已读状态,小于该时间的所有消息多为已读状态。四数据结构杠消息说明,1CLIENT mg ID客户端生成的ID、客户端密等设计防重复。2DIRECTION消息方向0代表较大UED向较小UAE发送消息,1则反之数据流等于数据加流。上面部分讲数据及联系人和消息表,从静态的角度介少LL了iim的数据结构。下面部分讲流I中最重要的两个流程及登录和发消息,从动态的角度来阐述iim系统中数据的流转。五主要流程处理,1、发送,通过用户与entry的长连接发送文字hello world 2、转发,Entry转发文字信息hello world到logic 3、入库,Logic存入数据库,其更新联系人表和消息表,其中联系人表更新recent as the content字段,消息表增加一条新消息记录。4、推送,从reddis中获取,用户B登录entry,如果未登录,走离线逻辑,发送push推送微信短信唤起。5、送达用户B收到消息。6、确认,发送AC到entry 7、完成logic收到AC,取消定时器,如果没有收到AK logic会定时重发。用户在线时联系人数据如下。
02:36
消息表数据如下。6M常见问题,1消息的实时性2消息的可靠性三消息的一致性7M高可用高并发1扩缩容2熔断3腺瘤4总结。八本文小结诚然,这篇文章给大家对iim系统简单的认识,阐述了iim的一般架构、主要业务逻辑、常见问题和解决方案,以及服务治理相关应用。IM还有很多业务逻辑和技术挑战,在业务上,如未读数、群聊、多端登录、母子账号等,在技术上,Entry长连接、E0K问题、优化时间轮计时器,实现海量数据拆分与存储选型等。路漫漫其修远兮,吾将上下而求索。
我来说两句