锁定老帖子 主题:面试题
该帖已经被评为隐藏帖
|
|
---|---|
作者 | 正文 |
发表时间:2009-09-10
那个项目经理干脆问你怎么开公司得了,会这玩意还需要打工?
|
|
返回顶楼 | |
发表时间:2009-09-10
UUCALL的项目经理很年轻
|
|
返回顶楼 | |
发表时间:2009-09-10
yuyee 写道 你写入数据库我还要读出来统计呢,文件还需要IO操作,感觉还是他的方法,直接放队列里,多线程操作统计 第一次听到放到数据库的东西还要拿出来统计. |
|
返回顶楼 | |
发表时间:2009-09-10
icefishc 写道 yuyee 写道 你写入数据库我还要读出来统计呢,文件还需要IO操作,感觉还是他的方法,直接放队列里,多线程操作统计 第一次听到放到数据库的东西还要拿出来统计. 呃,吓人了,应该是数据库连接耗性能 |
|
返回顶楼 | |
发表时间:2009-09-10
想想,那个人好像是说,存数据库连接耗性能
|
|
返回顶楼 | |
发表时间:2009-09-10
cheaper 写道 woodless 写道 1、可将访问结果保存到日志,比如使用apache,每天统计分析。
如果需要按小时统计,可将日志文件按小时分割。 实时的话,可采用高性能的bdb+cache方式 我遇到过,不过是很简单的做法,也是对日志文件分析,首先要明白几点,这是一个广告系统,当然数据量很大,所以你的web服务器当然不只一个,如果将及时的广告请求交给后台应用处理的话,后台的app server也会有很多来处理,这种方式必须保证后台app server的高并发,另外一种就是,不直接交给后台app server及时处理,将前台的web服务器的日志按大小,或按时间切割成小文件,交给后台任务分析,当然日志文件,你可以定义好日志格式,我用的nginx,可以按一定规则输出日志,如果实在量很大,直接上hadoop 2、可建两个积分字段,比如score1、score2,分别对应奇、偶年,年份切换的时候,程序控制访问相应字段即可。清零只清没有用到的字段即可,在一年中任何时间都可进行。 这个思路与众不同, 有特点. 学习了. 这个的做法,相对简单了,大家都提到临时表,这确实是一个方案,系统正对临界时间将积分写入临时表,页面展示也读取临时表,然后用另外的任务清理积分,清理完了以后,将临时表的数据写回来 上面有人好像说用缓存,这两个应用好像意义不大,缓存只针对频繁读取的数据才比较有意义,积分不能因为缓存而丢失 |
|
返回顶楼 | |
发表时间:2009-09-10
1。不加索引。
2。异步处理 |
|
返回顶楼 | |
发表时间:2009-09-11
我是相当理解那个管面试的项目经理的,好多技术人员不理解客户的需求就是上帝这个道理,碰到点难于满足的需求就撂挑子不干了,这样的员工在任何地方都不行的,做软件项目会得罪客户,做网站开发会得罪项目经理。其实很多情况下,如果你能力够,一时难于满足的需求反而是一个挑战。所以我们看到了,真正的牛人是从来不抱怨客户和需求的。某种情况下先反省反省自己的能力也是一个选项。当然,如果是领导啥都不懂,哪还是换个地方好。不过,到底是你的领导的问题还是你的问题呢?呵呵。
|
|
返回顶楼 | |
发表时间:2009-09-11
1、现在有一个广告系统,每天广告系统的访问量很大,每当用户点击一个广告时,需要记录广告的访问时间和每个IP每日访问次数,请给出系统优化方案?说得越多越好。
答: 两种方案: 1)采用缓存,每次访问的记录先记录到内存缓存中,定期flush到数据库中。 2)采用Apache服务器日志来记录就行。每次点击广告时,发送一个请求到Apache服务器,apache自动会记录日志,然后定时去分析日志。当然也可以采用nginx来记录,性能会更高。 另外,如果访问量再大时,就需要进行做负载均衡,日志处理就需要进行合并处理。 目前大网站都是这样来处理访问日志的。 2、现在有一张3000万用户数据的积分表,每年的1月1日0时需要对用户积分进行清零操作,而积分数据时时更新的,在不影响当然用户系统使用情况下,进行清零操作,请问你将如何设计系统? 答:由于更新时会导致锁记录,3000w会是一个很长的时间。 如果需要做到1月1日0时实时切换,可以让记录分为a,b两个字段,一般情况下用a字段,1月1日0时前把b清零,0时切换到b字段。每年一次自动切换。 如果需要做到实时切换,则可以减少每次更新粒度,比如每次更新1W条,分3千次执行完毕。 |
|
返回顶楼 | |
发表时间:2009-09-12
第一个题,使用messaging bus方式,或者使用mapReduce来进行。
第二题,当来到新的一年之后,每个用户记录每年第一次被访问的时候,触发清零操作。 |
|
返回顶楼 | |