1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 系统架构设计师考试题库重点案例:分布式数据库缓存设计

系统架构设计师考试题库重点案例:分布式数据库缓存设计

时间:2020-07-09 10:19:48

相关推荐

系统架构设计师考试题库重点案例:分布式数据库缓存设计

某企业是为城市高端用户提供高品质蔬菜生鲜服务的初创企业,创业初期为快速开展业务,该企业采用轻量型的开发架构(脚本语言+关系型数据库)研制了一套业务系统。业务开展后受到用户普遍欢迎,用户数和业务数量迅速增长,原有的数据库服务器已不能满足高度并发的业务要求。为此,该企业成立了专门的研发团队来解决该问题。张工建议重新开发整个系统, 采用新的服务器和数据架构,解决当前问题的同时为日后的扩展提供支持。但是,李工认为张工的方案开发周期过长,投入过大,当前应该在改动尽量小的前提下解决该问题。李工认为访问量很大的只是部分数据,建议采用缓存工具 MemCache 来减轻数据库服务器的压力,这样开发量小,开发周期短,比较适合初创公司,同时将来也可以通过集群进行扩展。然而,刘工又认为李工的方案中存在数据可靠性和一致性问题,在宕机时容易丢失交易数据,建议采用 Redis 来解决问题。在经过充分讨论,该公司最终决定采用刘工的方案。

【问题 1】 (9 分)

在李工和刘工的方案中,均采用分布式数据库缓存技术来解决问题。请说明分布式数据库缓存的基本概念。下表中对 MemCache 和 Redis 两种工具的优缺点进行了比较,请补充完善表 4-1 中的空(1)~ (6)。

【问题 2】 (8 分)

刘工认为李工的方案存在数据可靠性和一致性的问题,请说明原因。为避免数据可靠性和一致性的问题,刘工的方案采用 Redis 作为数据库缓存,请说明基本的Redis 与原有关系数据库的数据同步方案。

【问题 3】 (8 分)

请给出 Redis 分布式存储的 2 种常见方案和Redis 集群切片的几种常见方式。

【解答】

【问题1】

分布式数据库缓存指的是在高并发环境下,为了减轻数据库压力和提高系统响应时间,在数据库系统和应用系统之间增加的独立缓存系统。(1)多种数据结构(2) 不支持(3) 客户端哈希分片/一致性哈希(4) 不支持(虽然新版redis支持,但是考试是不支持的)(5) 有,私有内存池(6) 不支持

【问题2】

可靠性和一致性问题原因: MemCache没有持久化功能,所以掉电数据会全部丢失,而且无法直接恢复,这存在可靠性问题。MemCache不支持事务,所以操作过程中可能产生数据的不一致性。同步方案:读取数据时,先读取Redis中的数据,如果Redis没有,则从原数据库中读取,并同步更新Redis中的数据。写回时,写入到原数据库中,并同步更新至Redis中。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。