校园密约系统架构设计 - Duttor

专注人工智能在金融领域的应用

校园密约系统架构设计

“校园密约”是一款熟人交友,二度人脉APP,通过共同好友进行匹配的校园交友平台,使得交友信息更加真实可靠。

《校园密约系统架构设计》《校园密约系统架构设计》《校园密约系统架构设计》

面对用户量的不断增长,服务器的推荐引擎计算量呈指数级增长,对系统的性能提出了挑战。

本文将介绍“校园密约”的系统架构设计,如何支撑大并发、大数据量的计算。

系统架构设计

《校园密约系统架构设计》

数据接入层

移动端的请求首先经过Nginx负载均衡后,到达Finagle框架接收器,然后将信息存放到Kafka消息队列中。Finagle Server是Twitter开源出来的一个异步服务器框架,很适合移动互联网的访问特点:高并发、小数据量。Finagle Server可以提高单台服务器的处理能力。同时Finagle Server的无状态特性可以支持横向扩展,所以当面临非常高压力的时候可以简单地通过增加临时服务器来解决。

消息队列

消息队列使用的是Kafka集群,Kafka是由LinkedIn开源的分布式发布-订阅消息系统。Kafka作为数据接入层到数据计算层的缓冲,数据会先存放到Kafka消息队列中,数据计算层通过Pull的方式到消息队列中获取消息,解决了数据接入和数据处理能力不匹配问题。Kafka的具体搭建可以参考:http://wangbaocai.cn/?p=1217

数据计算层

数据计算层由多个推荐引擎组成,推荐引擎根据自身处理能力到消息队列中获取消息进行计算,多个推荐引擎可以并行计算。

数据存储层

推荐的结果存放在Redis缓存中,提高移动端获取数据的响应速度。更多Redis信息请参考:http://wangbaocai.cn/?p=1282 

数据服务层

通过REST方式将提供数据的访问接口。

“校园密约”官网:http://www.xymiyue.com

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>