论文部分内容阅读
最近几年时间越来越多的新闻应用产生。究其原因,一方面是随着人们的阅读需求越来越强,需要有更多在内容上具有特色的应用,另一方面是很多公司希望推出自己的新闻应用,让应用的文章能够更多的应用到公司的其它产品上,从而增加产品对用户的吸引力。现在,新闻应用不仅需要提供给用户阅读功能,还需要提供更多的用户操作和互动功能。在增加了很多功能后,出现了一些问题需要解决。例如,需要将文章的评论中出现的敏感词汇过滤掉。在一些场景下,新闻应用的服务端需要将提醒消息实时的推送给在线的用户。很多的新闻应用缺乏个性化推荐的能力,它们没有根据用户的兴趣来推荐相应文章,从而难以满足用户的需求。本文的在线新闻平台提供了丰富的功能并对上面提到的问题给出了解决方案。该平台采用了B/S架构,服务基于Node.js技术,数据存储基于Mongo DB和Redis。本文在对平台的业务和需求进行了分析后,将其从架构上分为了三层:数据存储层、基于多进程工作模型的服务支撑层、功能应用层。其中,数据存储层承担整个平台的数据的存储和缓存工作。为了保障平台的稳定和性能,在服务支撑层中设计并实现了一个Node.js的多进程工作模型,用来支撑整个平台的服务。针对此模型,本文根据真实业务场景设计了三个进程角色,并设计了多进程间的通信方案以及请求均衡分配策略,针对进程的各种错误退出提供了相应的解决方法。根据平台的业务需求,在功能应用层中设计并实现了多个功能模块,分别是:账号模块、权限模块、运营管理模块、用户活动模块、消息推送模块、个性化推荐模块。这些功能模块通过提供对应的功能来共同完成整个平台的需求。在设计和实现它们的过程中,涉及到了一些重难点内容。在用户活动模块中,设计实现了敏感词过滤算法,对平台中的评论内容进行实时的过滤检测;在消息推送模块中,设计了基于socket.io的实时消息推送方案,可以对在线的某个用户的所有页面进行消息的实时推送,同时借助于Redis的发布/订阅功能,实现了在集群和多进程服务下的推送;在个性化推荐模块中,设计了针对文章的个性化推荐的算法,通过对收集的用户的历史行为记录进行数据建模分析来建立对应的用户兴趣模型,从而根据其进行计算来推荐文章。平台经过了完整的功能测试和性能测试后,目前已经在实际中运行使用。平台的各方面都很稳定,为用户提供了良好的新闻阅读体验。本文完成了预期的工作。