程序员面试金典: 9.10 扩展性与存储限制 10.1如何搭建服务
2017-01-10 17:41
295 查看
问题:假设你正在搭建某种服务,有多达1000个客户端软件会调用该服务,取得每天开盘后股价信息(开盘价, 收盘价,最高价与最低价)。假设你手里已经有这些数据,存储格式可以自行定义。你会如何设计这套 面向客户端的服务,向客户端软件提供信息?你讲负责该服务的研发、部署、持续监控和维护。描述你 想到的各种实现方案,以及为何推荐采用你的方案。该服务的实现技术可任选,此外,可以选用任何机制 向客户端分发消息。 分析:这可以看做是高并发的服务。整体目的就是:减轻服务器压力,防止服务器崩溃。 技术点1_集群:采用多个服务器假设有n个,先将请求传给主服务器,然后,主服务器根据请求的客户端ip, 采用r = ip % n,计算该ip对应请求应该分发给机器r处理; 技术点2_缓存:由于考虑到实时性和并发请求的快速性,可以事先将股价信息查询后存在缓存中,设置缓存 失效时间time(比如设置为10分钟)。 当对机器r发送了获取股价信息的请求,机器r事先查看缓存是否失效,如果没有失效,直接将缓存 的股价信息返回给客户端;如果缓存失效,则直接查询数据库来获取股价信息并返回给客户端 技术点3_高可用性:考虑到高可用性,可以在机器中将股价信息事先结构化存储并序列化保存在本地, 如果读取缓存失败,则可以直接读取保存在本地的序列化的股价信息。 答案:对存储于文本,SQL进行讨论,说明SQL有点支持新增功能,易于扩展,备份等;缺点:设计一层,维护数据 分发使用XML,简单,解析方便,增加结点可以继续解析,易扩展。 我考虑了高并发,此题要考虑可扩展,易用性。
相关文章推荐
- 程序员面试金典: 9.10 扩展性与存储限制 10.6给定100亿个网址,如何检测出重复的文件?
- 程序员面试金典: 9.10 扩展性与存储限制 10.2寻找社交网站中的朋友路径
- 程序员面试金典: 9.10 扩展性与存储限制 10.3产生1个不在含40亿个整数文件中的整数
- 程序员面试金典: 9.10 扩展性与存储限制 10.4限定内存下寻找重复的数
- 程序员面试金典: 9.10 扩展性与存储限制 10.5如果要设计一个网络爬虫程序,该怎么样避免陷入无限循环。
- 程序员面试金典: 9.10 扩展性与存储限制 10.7想像有个Web服务器,实现简化版搜索引擎
- 程序员面试金典: 9.10 扩展性与存储限制 10.3产生1个不在含40亿个整数文件中的整数---优化解法
- 9.10扩展性与存储限制(三)——若只有4KB内存可用,该如何打印数组中所有重复的元素
- 9.10扩展性与存储限制(一)——对于超大型的社交网站,展示两个人之间的“连接关系”或“社交路径”
- 9.10扩展性与存储限制(二)——给定一个输入文件,包含40亿个非负整数。产生一个不在该文件中的整数。内存限制:1GB
- 秦波|如何基于MySQL及Redis搭建统一的kv存储服务
- 如何搭建本地SVN服务
- 如何搭建SVN服务
- 如何限制登录终端服务的地址
- 如何利用AIMS2013/MapGuide搭建WMS服务
- 如何利用Google App Engine搭建网络服务(一)
- 如何发布要素服务?(ArcGIS10.1)
- 教你如何快速为企业公司搭建sendmail邮件服务;以及安装配置OpenWebmail的安装、测
- 教你如何快速的在linux5.0上为大型公司企业搭建DHCP(动态主机配置)服务以及中继代理服务
- Storage,Memcache,KVDB都是存储服务,如何区分何时用何种服务