设为首页收藏本站

小钿自留地

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 11299|回复: 0
打印 上一主题 下一主题

某移动社交应用服务端架构浅析

[复制链接]
  • TA的每日心情
    奋斗
    2017-6-21 15:24
  • 签到天数: 23 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    30

    主题

    48

    帖子

    650

    积分

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    650
    跳转到指定楼层
    楼主
    发表于 2015-4-4 22:28:04 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
    TA是一款是基于地理位置的社交应用,帮助你与你不认识的、但就在附近的人进行即时沟通。TA是一款陌生人约会交友应用,无论你在银行排队、乘坐公交、咖啡厅或公园散步等任何地方,随时随地就能与附近有趣的陌生人进行即时沟通、分享照片、约会和交友……

    转眼间,离开该研发团队快半年了,在此期间不少网友问到后端架构,及技术细节。出于技术分享为目的,现将服务端架构及设计思路分享给大家。

    如下图:



    上图为服务端总现结构图,下面介绍下各部分的作用。

    服务端主要分为3层:

    持久层:主要做为数据的持久存储,包扩数据库和文件形式(图片,音视频等)的数据。

    缓存层:为应用层提供数据缓存服务,数据路由中转。

    应用层:该层为客户端提供直接应用服务及接口访问。



    具体作用:

    身份认证网关:作为客户端应用访问的入口,提供用户注册,身份验证等服务。当用户打开应用时,输入帐号密码并提交给认证服务器,当通过认证后,再为客户端分配会话服务器,并将登录认证信息写入到Redis中,再访问需要身份验证的接口时,其它服务则从REDIS中获取认证信息。

    会话保活服务:该服务采用TCP/IP协议,主要用于客户端保持长连接,负责即时消息的发送与获取。


    群组/房间服务:该服务主要用于“群组”功能,同一群组内的用户连接到相同的服务器。


    功能业务服务:主要提供非即时服务的访问,比如分享照片,查看他人资料等。

    多媒体文件服务:为客户端提供文件读写服务。如上传相片,分享音视频等。

    消息路由:主要用于跨会话服的即时消息路由中转,比如A用户在1号会话服,B用户在2号会话服,双方的即时通信将由“消息路由”进行中转。

    缓存层:主要用于存放热数据,如用户SESSION,认证信息,各应用服务器资源等,降低对持久层的访问压力。

    数据访问中间件集群:作为核心组件,所有对数据库的访问都由它来统一提供,由于数据库服务器由多台组成,每台又有读写分离多机,造成数据库服务相对庞大,是为了降低应用层使用复杂度而生。

    持久层:主要是数据库和文件存储,就不做过多介绍了。



    安全性保证:

        通信数据安全,所有基于HTTP通信的数据请求,均采用数字签名,通信中的敏感数据采用“对称加密”算法进行加密。有网友问到具体实现细节,现将原理进行简要说明。

    数字签名证书有两部分组成“身份指纹”+ “密钥”,客户端在发送数据时,使用该签名证书对发送的数据进行签名,再将签名和数据同时发送到服务器,服务器用相同的方法再对数据进行签名,然后比较签名是否一致。

        服务端安全,基于TCP/IP协议的会话服和房间服,用户连接上服务器端口后,需要进行身份验证,2分钟内没有过能验证的连接将会被主动断开。



    在整个系统中大部份服务是无状态,可通过增加服务器的方式进行水平扩展。
    转载:http://blog.csdn.net/zhanjianshinian/article/details/38143211

    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|小钿自留地 ( 湘ICP备15002355号  

    GMT+8, 2026-3-7 15:31 , Processed in 1.191144 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表