即时通讯架构研究

1    系统架构

1.1 概述

即时通讯:允许两人或多人跨多样网络即时传递文字、档案、语音和视频交流的终端服务。

1.2 逻辑架构

即时通讯软件的主要功能有:

即时会话:两人或多人之间,文字、视音频的交流,包括在线消息与离线消息的发送接收,耳机、话筒音量的控制等。

组织机构:包括部门、用户、群组等级别的管理,好友列表的增删与维护,个性化名片、图标的定制与修改等。

文件目录:在线文件传输、目录共享以及离线文件存储与下载;协同浏览、播放以及远程共享等。

注册登录:注册管理,用户的登录与退出记录,消息推送,以及在线状态的维护与更新。

系统设置:个性化本地配置,帮助信息,在线更新,历史记录的查看以及设定。

系统逻辑架构示意图:

即时通讯系统一般分为客户端与服务端,客户端较轻,关键逻辑在服务端,一般分为三到四层,采用B/S和C/S混合架构。

连接层:Connector连接集群。连接层需要尽可能简单,采用同步/异步多种方案,来支撑高并发与高在线。连接层需要承担的总连数可能超过1000万。

逻辑层:关键逻辑与业务逻辑、应用逻辑分离,将即时通讯的功能模块化颗粒化,抽象基础逻辑组件,在基础组件基础上构建业务逻辑子群。

数据层:根据逻辑层的模块化,设计对应的服务化数据集群,在逻辑和物理上对数据进行隔离存放。

监控层:将监控嵌入基础框架,多层进行监控和观测,故障可以迅速被预警,并在用户感知前排除掉。

1.3 物理架构

物理架构与逻辑架构有一定的映射关系,在逻辑架构的基础上,通过如防火墙等筑起安全防线,通过负载均衡等设备构建多点容灾,即通过成熟的硬件技术,在软件系统的设计支持下,增强系统的安全性、稳定性和可靠性。

2    关键技术

2.1 协议设计

即时通讯的开源参考协议有XMPP与SIP,但缺点很明显:1、流量大;2、不可靠;3、交互复杂。针对移动IM的通讯协议一般需要自行设计,改进缺点,并克服以下问题:

通讯协议设计的目标是:高效、可靠与易于扩展。能够实现弱网络的快速收发,不会丢失消息。并且要简化交互模式,实现增量传输,消息考传输并且按序到达。

考虑长链接和短链接相结合,核心的长链接用来传输轻量的实时数据,图片、语音等都可以开新的TCP与HTTP链接。

2.2 敏捷发布

即时通讯基于互联网,变更是非常频繁的,需要做到敏捷,而且不是基于单机系统的,基于有一定用户量(百万级?千万级)的系统上,实施敏捷开发与在线发布。

敏捷发布的技术理念:

1、    大系统小做:模块清晰,物理部署分离,区分关键逻辑与应用逻辑;

2、    一切可扩展:通讯协议可扩展,向前兼容;数据存储可扩展,多方式存储

3、    轻松上线部署:灰度部署,开发环境能快速部署到生产环境,可进可退

2.3 容灾设计

1、    多层容灾:系统设计一般分为接入层、逻辑层、存储层,从前到后多层容灾设计。

2、    存储上采用主备、双写等方案,进行容灾方案设计,防止雪崩,并避免蝴蝶效应。

2.4 监控设计

即时通讯一般是海量系统,一个精密的仪表盘非常重要,监控需要克服的问题:

1、    海量日志:一个小时达到数百G

2、    实时图片:1分钟实时图标展示

3、    需求灵活:复杂的关联统计,多样的监控需求

监控需要纳入基础框架,但不能给业务系统造成影响。

时间: 2024-10-12 14:03:22

即时通讯架构研究的相关文章

基于Android 平台简易即时通讯的研究与设计[转]

摘要:论文简单介绍Android 平台的特性,主要阐述了基于Android 平台简易即时通讯(IM)的作用和功能以及实现方法.(复杂的通讯如引入视频音频等可以考虑AnyChat SDK~)关键词:Android 平台:即时通讯 (本文中图表点击附件即可见) 1 Android 平台简介Android 是Google 公司于2007年11月5日推出的手机操作系统,经过2年多的发展,Android平台在智能移动领域占有不小的份额,由Google为首的40 多家移动通信领域的领军企业组成开放手机联盟(

基于Android平台简易即时通讯的研究与设计

1 Android平台简介 Android是Google公司于2007年11月5日推出的手机操作系统,经过2年多的发展,Android平台在智能移动领域占有不小的份额,由Google为首的40多家移动通信领域的领军企业组成开放手机联盟(OHA).Google与运营商.设备制造商.开发商和其他第三方结成深层次的合作伙伴关系,希望通过建立标准化.开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统.正因如此,Android正在被越来越多的开发者和使用者所接受.近日,Google发言人Ant

分享基于Android系统的XMPP即时通讯技术项目实战(仿微信开发架构,自定义控件)

即时通讯技术是 网络技术中的明珠.即时通讯产品改变了人们的生活习惯.经过十几年的发展,即时通讯功能的应用也逐渐从专门软件才能实现的功能逐渐成为标准配置.即时通讯技术的应用不仅仅只是用于社交领域,在大多的协同工作领域,以及需要分布结构的网络通讯领域都是非常重要的.讲师本人在android领域有多年的开发经验,在即时通讯系统方面也有深入的研究.在本课程中,详细讲解了android开发中要解决的一些主要的问题,即时通讯在客户端实现的过程,并手把手的进行操作,方便学习和理解.因为课时的原因,对于一些初级

XMPP协议实现即时通讯底层书写 (三) IOS XMPPFramework --IM底层架构设计+技术准备工作

最近发生了一些不是很愉快的事情,导致断更很长一段时间,很抱歉."不要炫技,理解原理,对自己的代码负责,才能对团队和项目负责"--郭前辈在群里说过的语录,让我很是欢喜和受教.鄙人写第一次写blog是在2011年,那时候写技术blog的初衷是为了写日记:今天我学到了什么知识,技术,记录自己程序猿的成长点滴.随着技术的积累,写blog为了分享:傻逼,如果你也碰到这种问题,这是我的解决方案,看了这些XXX处理好的,可以"抄"这份60分的答案来解决问题.到现在这阶段,写blo

基于XMPP协议的手机多方多端即时通讯方案

目   录 基于XMPP协议的手机多方多端即时通讯方案................................................................. 1 目   录.................................................................................................................... 2 一. 开发背景........................

xmpp即时通讯协议的特性---长处和缺点!

xmpp协议的定义? XMPP是一种基于标准通用标记语言的子集XML的协议,它继承了在XML环境中灵活的发展性. 因此.基于XMPP的应用具有超强的可扩展性.经过扩展以后的XMPP能够通过发送扩展的信息来处理用户的需求.以及在XMPP的顶端建立如内容公布系统和基于地址的服务等应用程 序. 并且,XMPP包括了针对server端的软件协议,使之能与还有一个进行通话,这使得开发人员更easy建立客户应用程序或给一个配好系统加入功能. 在此我概括一下xmpp协议的优缺点: 长处: XMPP协议是自由.

XMPP即时通讯

XMPP:XMPP是基于XML的点对点通讯协议,The Extensible Messaging and Presence Protocol(可扩展通讯和表示协议). XMPP可用于服务类实时通讯,表示和需求响应服务中的XML数据元流失传输.XMPP以Jabber协议为基础,而Jabber是即时通讯中常用的开放式协议. 基本结构. XML是一个典型的C/S架构,而不是像大多数即时通讯软件一样,使用P2P客户端到客户端的架构,也就是说在大多数情况下,当两个客户端进行通讯时,他们的消息都是通过服务器

UI进阶 即时通讯之XMPP登录、注册

一.即时通讯 什么是即时通讯. 即时通讯(Instant Messaging)是目前Internet上最为流行的通讯方式,各种各样的即时通讯软件也层出不穷,服务提供商也提供了越来越丰富的通讯服务功能. 即时通讯的实现方式 即时通讯有多种实现方式,例如:XMPP.环信.融云等. 什么是XMPP XMPP(XML,Messages,Presence,Protocol)是基于可扩展标记语言(XML)的协议,可用于即时通信(IM).——可扩展消息处理现场协议 XMPP优点 开放XMPP协议是由JSF开源

GGTalk ——C#开源即时通讯系统

http://www.cnblogs.com/justnow/ GGTalk ——C#开源即时通讯系统 下载中心 GGTalk(简称GG)是可在广域网部署运行的QQ高仿版,2013.8.7发布GG V1.0版本,至今最新是5.5版本,关于GG更详细的介绍,可以查看 可在广域网部署运行的QQ高仿版 -- GGTalk总览. GGMeeting是可在广域网部署运行的视频会议系统Demo,2015.05.11发布V1.0版本,关于GGMeeting更详细的介绍,可以查看 打造自己的视频会议系统 GGM