IM - 系统架构设计

IM - 系统架构设计,第1张

IM系统架构设计,如下图,主要分为两部分:

本文重点介绍 即时通讯IM 的系统设计,包含设计思路、每个模块的功能、主要流程介绍、常见问题解答。

企业级即时通讯系统,在 提高团队沟通协作效率 的基础上,实现 万物互联 场景

本文结合IM主流需求,阐述了IM系统架构。从宏观层面,希望大家有一个初步的认识。

接下来,本专题将深入介绍核心功能的实现逻辑。(请客官坐稳扶好)

这套架构的核心 有几个

1 . hazelcast 插件 redis化 ,将cache 从 hazelcast 移到redis中 (已完成)

2 . redis cluster (横向扩展 ,避免hot key的问题 ,以及 其他一些性能问题)(已完成)

3 . kafka im 与外部系统的对接

4 . 监控体系 完善 与对接

测试的点

1.同一节点用户 在线消息 与离线消息 吞吐量

2.不用用户节点 吞吐量

存在的问题

1.不同节点 , 吞吐量分布 比较 难以估测

By 紫韵: 最近对 IM 系统产生了兴趣,就看了些博客,现希望通过一个系列的文章对其稍作总结与记录,如有不对,还望指正。

IM:Instant Messaging,即时通讯,是一个允许两人或多人通过网络实时传输文字、语音、视频等的终端服务,如现在常用的 QQ、微信、百度 Hi 等。IM 完全基于 TCP/IP 网络协议族实现,而 TCP/IP 协议族则是整个互联网得以实现的技术基础。

典型的 IM 通讯方式有如下四种:

P2P &&服务器中转

一般常用的 IM 通讯方式就是 P2P 和服务器中转这两种,下面简要对比分析这两者的区别。

P2P:

P2P 多见于局域网内聊天工具,典型的应用有:飞鸽传书、天网 Maze 等。这类软件在启动后一般做两件事情:

进行 UDP 广播:发送自己信息和接受同局域网内其他端信息;

开启 TCP 监听:等待其他端进行连接。

限制和不便:

只适合 ** 在线 ** 的 ** 点对点 ** 消息传输,对离线、群组等业务支持不够;

由于 NAT 的存在,使得不同局域网内机器互联难度大大上升,在某些网络类型(对称 NAT)下无法建立连接。

** 服务器中转 **

几乎所有互联网 IM 产品都采用服务器中转这种方式进行消息传输,相比于 P2P 的方式,它的优劣如下:

** 典型的 IM 工作方式如下:**

客户端登陆 IM 通讯中心(IM 通讯服务器),获取好友列表,获取离线消息,将自身标志为在线状态,与聊天对象建立聊天通道,进行文字、语音等通信。

一个典型的 IM 系统的选型过程大致包含如下几个部分:

** IM 系统架构分层:**

一个典型的 IM 系统可能由如下及部分组成:

*** 功能点分析:***

*** 技术点分析:***

** 移动端 IM 客户端难点 **

** 移动端架构设计的难点 **


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/274471.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-20
下一篇2023-04-20

发表评论

登录后才能评论

评论列表(0条)

    保存