免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2159 | 回复: 2
打印 上一主题 下一主题

一道笔试题,请大家指点 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-07 19:27 |只看该作者 |倒序浏览
今天去笔试,有这样一道题:

某互联网公司有8千万注册用户,在其业务系统中需要频繁的读取用户的信息,假设用户的信息不会被修改,把用户的信息都存在缓存系统中,假设一台服务器可以缓存20万用户的信息。

1、需要多少台缓存服务器?为什么?
2、缓存系统的结构是怎样的?
3、具体描述一下业务系统如何通过缓存系统的客户端,根据一个用户ID获取这个用户的对应信息?
4、缓存系统的客户端和服务器端的通信应该如何处理?

希望大家指点一下,对这个方面根本没有概念。

论坛徽章:
0
2 [报告]
发表于 2008-11-08 18:15 |只看该作者
我来随便说说:


1、需要多少台缓存服务器?为什么?
   简单的[用户总数/每台]性价比是比较低的,除非傻有钱,并且硬性要求全量cache,一般来说应分析活跃用户有多少,按活跃用户数,再参考相关成本预算来考虑服务器数量.假设只有10%的用户是活跃用户,活跃用户的定义是最近2天内有访问的,最高并发时只有3%的用户,每用户访问持续平均时间为10小时,那么合理设计淘汰和装载算法的话,按5%用户数设计cache应该就可以满足实时访问性能要求。

2、缓存系统的结构是怎样的?
   最简单的说法就是Hash表,加上用于淘汰算法(如LRU等)的额外消耗,细节上需要考虑动态分配(mem pool),有效承载,性能,互斥,分布式路由,容灾恢复,同步等等这些架构,和纯数据结构关系不大。

3、具体描述一下业务系统如何通过缓存系统的客户端,根据一个用户ID获取这个用户的对应信息?
   客户端->分布式路由(定位相应cache服务器的地址)->访问Hash->返回用户信息。容错部分需要想的细一点,比如如何避免单点。

4、缓存系统的客户端和服务器端的通信应该如何处理?
    估计问的是长连接还是短连接这些东东,一般来说,在socket句柄资源不紧张的情况下,client对每台server长连都可以,再加上心跳+自动断连设置。udp也可以,效率高,占用连接句柄少,内网丢包很少。

ps:至于对方认为这样的回答是否有价值,可能取决于具体的应用场景,问题领域,具体问题具体分析。

[ 本帖最后由 flyingbear 于 2008-11-8 18:30 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2008-11-09 08:30 |只看该作者

回复 #2 flyingbear 的帖子

感谢 flyingbear 的指点。

想问一下这种问题考的是哪些知识点?服务器?网络?还系统方面的?想有针对性的看一下资料,不知可否推荐几本书。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP