zoukankan      html  css  js  c++  java
  • IM设计思考:试问

    用过IM很多年了,直到最近才开始好好想想IM的实现需要考虑哪些方面?

    特别是在海量用户的IM环境下,需要考虑哪些方面,自己大概思考了下总结如下:


    1.  海量接入

    QQ的最高在线用户超过了1亿,那么大约每台服务器能接入多少用户?

    如何将海量的登陆用户平均负载到接入服务器集群?

    某台接入服务器过载崩溃时如何平滑转移,避免“多米诺”骨牌效应。


    2.  安全认证

    登陆认证时如何保障安全?何种加密机制,验证方式?

    消息传递时的安全性,加密或不加密?

    自动登陆时的验证模式?


    3.  消息转发

    不同用户可能登陆在不同的服务器上(存在跨IDC机房可能),如何保证即时性和可靠性?

    如何定位用户的登陆位置进行转发?

    每条消息的大小限制多少?


    4.  离线消息

    离线消息是否100%可靠?

    每个用户允许多大的离线消息存储?

    离线消息是否有过期时间?如何管理?


    5.  状态广播

    上线、下线、离开、用户自定义等多种状态消息向好友的转播,可能形成的广播洪流拥塞网络如何解决?


    6.  多点登陆

    如何支持用户多点登陆(PC、手机、PAD同时登陆)?

    多点登陆的情况下消息如何转发,状态如何通知?


    7.  关系管理

    海量用户关系如何管理?

    允许每个用户关联多少好友?(关联的数目越多关系数据网越复杂,对消息和状态通知带来更大压力)

    好友关系的版本管理机制如何设计?(方便和本地客户端对比,减少网络传输流量,进行差异更新)


    8.  多媒体通信

    复杂网络环境下的语音、视频如何通信,协议协商?


    9.  文件传输

    传输协议协商机制?

    中转传输时的可靠性、并发能力和流量控制?(单台服务器可同时服务于多少用户的中转传输?)

  • 相关阅读:
    笨办法42物以类聚(补充40)
    笨办法41来自 Percal 25 号行星的哥顿人-randint-exit(0)
    nginx模块1--索引autoindex_基于ip_监控模块status
    selinux
    nginx安装与配置--基础
    svn安装
    docker-registry私有registry
    zabbix钉钉报警
    zabbix字体
    zabbix告警
  • 原文地址:https://www.cnblogs.com/hehe520/p/6147662.html
Copyright © 2011-2022 走看看