“评论盖楼”的设计思路

这样的需求其实挺特殊,每个“楼”都是一个独立的“树”,每个“楼”都“几乎”不用依赖其他的“楼”。
最简单、最高效的方式是用文件来存
储每一个楼,每个新闻一个楼,使用xml、json等树形结构的文件格式来规范评论和新闻内容。这样每进一个楼只需要访问一个文件,发评论只是创建一个文
件,把楼盖高,只是给增加新内容。而新闻列表可以存储在数据库中,也可以用lucene做索引。

如果一定要用数据库实现,那么新闻(主贴)做一张表,评论(回贴)做一张表,评论表中添加新闻id字段作为与新闻表的外键关联即可。如果要进一步完善树形结构,评论表上补充一个指回评论表的外键即可。

如果性能非常重要,这个方式是很有意义的,而且新闻列表一定是用lucene做索引。
新闻首页一定不是直接查询数据库,而是静态化该页面。在后台做一个轮训器,定期更新这个静态页,如果有重大新闻发生,强制更新该页面。
新闻内容、评价页静态化或者单文件处理,能极大降低服务器压力,毕竟没有数据库操作。每天一个目录,或者每小时一个目录,在文件存储方面就不会对文件系统形成较大压力。

2、
于数据压力,用数据库的话,可以分拆为每年、每个月再或者每周一个新闻库,只需要每次新增一个库即可。具体的处理方式就要看你用的数据库。
某些情况下,将当月、重点的新闻单独提炼出来静态页面项目,需要对当月、重点的新闻做大规模的负载均衡,对其他不重要新闻则使用普通的方式。

新闻内容如果静态化
优势:可以使用apache甚至lighttpd、nginx服务器,对应的处理压力的能力较强。
方式:可以用新闻内容本身+新闻模版生成静态的新闻文件,在新闻文件上用ajax异步加载新闻的评论。
缺点:新闻页面上的其他因素成为开发起来比较麻烦的东西,比如广告、相关文章链

新闻内容如果不静态化
缺点:使用的服务器受到你的系统的架构的影响,处理压力的能力受限。
方式:可以将该新闻的内容、评论等相关因素放在一个xml里面,访问该新闻时仅仅读一个新闻xml,仅一次读IO,性能上不会有较大压力。前端可以再加一个集中式缓存(比如memcached),将读的次数非常多的新闻存在缓存中,进一步减少IO数。
有点:灵活。

时间: 2024-10-29 19:08:28

“评论盖楼”的设计思路的相关文章

仿腾讯盖楼爬墙新闻评论的CSS实现

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>仿腾讯爬墙式新闻评论的CSS实现</t

使用fiddler盖楼评论

使用fiddler盖楼评论:使用replay重复请求某接口 原文地址:https://www.cnblogs.com/come202011/p/12262441.html

JS表格分页组件:fupage的设计思路和具体用法(未来考虑开源,争取在2015年)

一.背景         之前在秒针工作的时候,某js高级工程师写了很多自己的组件,其中一套是分页组件,叫做st-grid.不过在我看来,bug太多,我经常给他反馈bug,我也不清楚为啥别人没有发现.    回到武汉工作后,我自己利用业余实践完善自己的官网,从前端到后端,都是自己一个人亲自搞定.    第1个分页的需求是,文章下方的评论,异步加载.第2个需求是,表格管理,比如后台管理系统,经常需要列出user.log等表的记录.   二.实例 <table class="table tab

用MongoDB数据库来管理办公系统中文档型的表单和信息——通用流程化应用审批单设计思路(二,续)

1.办公系统中文档的定义 办公系统中的文档就是指对数据不敏感的业务,例如流程中的审批单.信息专栏.数据上报.信息记录等.而对于这些信息的管理,特别是时效性较强的管理记录,仍采用关系型数据库进行管理. (1)流程中审批单 流程中审批单由功能按钮区.特殊功能区.业务表单区.附件区.审批意见区等区域构成,其中,业务表单区理论上包含附件和意见,但是由于附件和意见的业务特殊性,需要单独进行管理,剩下的业务表单就可以看作文档了. 在一些流程审批业务中,业务信息有的是以Excel或word文件等方式专递,这样

跟张小龙学习做优秀产品经理的设计思路

提起张小龙,大家都非常熟悉这位极度优秀的产品经理,不仅仅是因为Foxmail,更因为目前深刻改变你我移动生活的移动互联网产品 - 微信,其江湖地位的确定已经让众多国内立志于做优秀产品经理的人顶礼膜拜了,我们首先借助互联网材料回顾一下微信的创立历程: 一.微信的演化历程: 2010年11月19日23时58分,张小龙在腾讯微博上写下了这么一句话: 我对iPhone5的唯一期待是,像iPad(3G)一样,不支持电话功能.这样,我少了电话费,但你可以用kik跟我短信,用googlevoice跟我通话,用

最代码网站中关于动态表event的设计思路

原文:最代码网站中关于动态表event的设计思路 为了能将最代码整站用户的操作都展现出来,需要设计一种动态类型,既可以根据业务无限扩展,也可以指定某些用户行为是可以产生多少牛币交换的,这样就在原先javaniu的零散的表设计基础上抽象出event表 表结构如下: CREATE TABLE `javaniu_event` ( `id` bigint(20) unsigned NOT NULL auto_increment, `create_time` datetime NOT NULL, `upd

智能楼宇智慧建筑 3D 可视化管理平台设计思路以及展示效果图-小水智能

智能楼宇.智慧建筑3d可视化设计思路 需求分析智能建筑是将传统建筑技术同先进的信息技术(计算机技术.自动化技术.网络与通讯技术) 相结合,建筑一种舒适.高效的节能环境,为人们提高生产力创造条件,智能建筑是综合经济实力 的象征. 智能建筑的基础有三部分组成:办公自动化系统(OA),通讯自动化系统(CA),楼宇设备自动化系统(BA). 针对智能化系统的应用需求,注重从几个方面进行考虑和阐述. A:系统的需求定位分析:为创新园大楼智能化系统的定位.设计提供多角度的分析,力求项目定位与应用贴近实际. B

秒杀系统的思考方式与设计思路--左手隔离,右手分层

大家好,我是崔皓. 很高兴有这样一个机会和大家认识.我在IT行业从事软件开发工作十余年了,足迹涵盖企业服务,互联网,企业数字化转型等.工作之余热爱阅读和学习,希望能通过这个专栏和大家成为朋友. 开篇 本次专栏要给大家分享的是"如何设计秒杀系统",专栏共包括15章,本章是第一章.今天会给大家介绍以下内容: 秒杀场景的特征 隔离的设计思路 分层设计思路本章的讲解思路是,提出秒杀场景的特征,也就是理解什么是秒杀.然后介绍在秒杀系统设计的底线,有了底线才能保证进可攻退可守.最后介绍使用哪些方法

Pongo网页版JavaScript源代码及设计思路

1.游戏背景介绍(写在前面的废话): 五月初的某天,看到某网推荐了这款游戏,Pongo,看着还不错的样子就用ipad下下来试玩了下,玩了两局感觉还错挺过瘾的,因为是手欠类游戏嘛大家懂的. 但是没一会发现游戏在ipad似乎有些bug,玩一会就会卡住然后只能强退了,真是揪心,记录还等着破呢. 怎么办?玩游戏不如玩自己的游戏的念头又邪恶的出现了,然后就把pad丢给了朋友虐心去,我默默回到电脑前开始动手自己写个不会卡的. 大概两小时吧,写出了基本框架,然后扔sinaapp里试了下效果基本能玩就洗洗睡了.