系统、
好友系统、qq邮箱你都深度参与过。说实话,整个网际网路圈,比你更懂i后台的人,并不多。」
廖军微微点头,这些话他听得多了。
他刚想先问耿直,找他来要做的项目是什么,却被耿直抢了先。
「所以,我们直接聊技术。」耿直说着,便抛出了今天的第一个问题。
「陌陌现在日活快200万了,每天消息量四五千万条。我们的聊天系统是基于开源框架改的,现在扛不住了。」
「如果让你从头设计一套i系统,支撑2000万日活、5亿条消息/天,你会怎么做?」
噗嗤————
廖军听到耿直一下子就把日活拉高到10倍,差点没忍住。觉得眼前的这位年轻老板,过于夸张了。
他靠在椅背上,嘴角微微扬起。
虽然很狂,但这个量级,在qq面前依旧只是个零头————
他轻咳一声,开始讲道:「架构上,分三层:接入层、逻辑层、存储层。接入层用lv做负载均衡,逻辑层无状态设计,可以水平扩展,存储层分库分表,按用户id做。
他越说越顺,从cp长连接说到心跳机制,从消息同步说到离线存储,从推拉结合说到多终端同步。
廖军没有因为耿直是外行,就敷衍,相反,他说得很认真。
得意地说了几分钟,然后停下来,等耿直的反应。
耿直没有点头,也没有记录,只是安静地听着。
等他说完,问了一个问题:「你刚才说,消息同步用推拉结合。具体怎么推?怎么拉?什么时候推?什么时候拉?」
廖军一愣。
这个问题,确实比刚才的[架构设计]要细。
而且,耿直似乎的确听懂了自己刚才的回答了?
「在线用户推,离线用户拉。推的话,通过长连接直接下发。拉的话,用户上线时从离线库拉取————」
耿直追问:「那如果用户在线的瞬间,消息量很大,比如积压了一百条,长连接推送会不会把客户端撑爆?」
廖军皱眉。
这个问题,确实需要想一下。
「可以做消息分页,一次只推20条,剩下的用户主傍拉。」
耿直腔腔颔首,准备问深入一些:「好。那第二个问题一」」
「用户给用户b发消息。显示[已发送],b显示[已接收]。这两个状态,怎么艺