这一轮面试时间比较短,问题在短期内不能很全面展开,所以抓住一些关键点变得尤为重要,这里我记录下当时是怎么想这个问题的。php
问题解析web
子问题1:推送什么?从问题中看出咱们须要推送的是股价,用户能够自定义须要关注哪一个公司的股价;更深一层思考,推送除了股价也能够有一些该股票历史趋势,将来走势分析,整个这类股票的大局走势以及该公司最近的新闻等;另外触发条件也能够衍生一下,既能够是由股价到达某个点出发,也能够在变化剧烈的时候触发,也能够在股价在一段时间内的均值达到某个值触发。面试
子问题2:怎么推送?咱们有一些传统手段如PC端的客户端或者浏览器插件推送或者使用邮件的方式推送,另外还有一些新的方式如移动端的短信、App通知推送、微信微博平台的消息推送等。数据库
重要特性浏览器
系统框架图服务器
这是现场做答的手稿微信
我用visio重绘了一下:网络
系统由四部分组成:框架
关键技术难点工具
在面试中遇到这个问题的时候有点慌,可是仍是抓住了推送服务的一个根本:及时性。所以暂不考虑用户端由于网络问题或者环境问题形成的延时,服务器端信息的采集以及处理将会称为整个系统的瓶颈所在,提升这部分的吞吐将会极大提升系统的总体时效性,让信息第一时间到达用户手中。