代码编织梦想

每日打卡题案例10答案
【2014年真题】 难度:一般
请详细阅读有关Web应用架构设计方面的说明,回答下列问题。
【说明】
某软件公司开发运维了一个社交网站系统,该系统基于开源软件平台LAMP(Linux+Apache+MySQL+PHP)构建,运行一段时间以来,随着用户数量及访问量的增加,系统在Web服务器负载、磁盘I/O等方面出现了明显瓶颈,已不能满足大量客户端并发访问的要求,因此公司成立了专门的项目组,拟对系统架构进行调整以提高系统并发处理能力。目前系统采用了传统的三层结构,系统架构如下图所示。
在这里插入图片描述

【问题1】
针对目前出现的Web服务器负载过大问题,项目组决定在客户端与中间层Web服务器之间引入负载均衡器,通过中间层Web服务器集群来提高Web请求的并发处理能力。在讨论拟采用的负载均衡机制时,王工提出采用基于DNS的负载均衡机制,而李工则认为应采用基于反向代理的负载均衡机制,项目组经过讨论,最终确定采用李工提出的方案。请用200字以内的文字,分别简要说明两个机制的基本原理,并从系统执行效率、安全性及简易性等方面将两种机制进行对比,将对比结果填入下表中。
两种负载均衡机制对比分析表
在这里插入图片描述

注:请在表格(1)~(8)处填入“是”或“否”
【问题2】
针对并发数据库访问所带来的磁盘I/O瓶颈问题,项目组决定在数据层引入数据库扩展机制。经过调研得知系统数据库中存储的主要数据为以用户标识为索引的社交网络数据,且系统运行时发生的大部分数据库操作为查询操作。经过讨论,项目组决定引入数据库分区和MySQL主从复制两种扩展机制。数据库分区可采用水平分区和垂直分区两种方式,请用350字以内的文字说明在本系统中应采用哪种方式及其原因,并分析引入主从复制机制给系统带来的好处。
【问题3】
为进一步提高数据库访问效率,项目组决定在中间层与数据层之间引入缓存机制。赵工开始提出可直接使用MySQL的查询缓存(querycache)机制,但项目组经过分析好友动态显示等典型业务的操作需求,同时考虑已引入的数据库扩展机制,认为查询缓存尚不能很好地提升系统的查询操作效率,项目组最终决定在中间层与数据层之间引入Memcached分布式缓存机制。
(a)请补充下述关于引入Memcached后系统访问数据库的基本过程:系统需要读取后台数据时,先检查数据是否存在于______中,若存在则直接从其中读取,若不存在则从______中读取并保存在______中;当______中数据发生更新时,需要将更新后的内容同步到______实例中。(备选答案:数据库、Memcached缓存)
(b)请结合已知信息从缓存架构、缓存有效性及缓存数据类型等方面分析使用Memcached代替数据库查询缓存的原因。

【参考答案】
【问题1】
两种机制的基本原理:
基于DNS的负载均衡机制通过DNS服务器实现,通常通过循环复用具有同一域名的多个主机地址的服务器实现负载均衡。
反向代理负载均衡则是将来自Internet的连接请求以反向代理的方式动态转发给内部网络上的多台服务器进行处理,从而达到负载均衡的目的。
区别比较:
从系统执行效率方面讲,基于DNS的负载均衡机制实现简单,但其通常不能区分服务器的差异,也不能反映服务器的当前运行状态。基于反向代理的则可以根据内部服务器的性能差异及实时负载情况进行动态负载均衡,当系统多个Web服务器性能存在明显差异或内部Web服务器出现故障时,负载均衡器可以更快做出响应,从而保证客户端的访问效率。采用基于反向代理的负载均衡机制,可在代理服务器中引入调速缓存机制,对Web服务器返回的静态页面或图片等静态资源进行缓存,由代理服务器承担对原始服务器的静态资源访问请求,从而进一步降低原始Web服务器的负载。
从安全性方面讲,采用基于反向代理的负载均衡机制,代理服务器屏蔽了客户端对真实Web服务器的直接访问,恶意用户无法对真实Web服务器进行攻击,且可以通过代理服务器为原本不安全的客户端与Web服务器之间的连接建立安全通道。因此采用基于反向代理的负载均衡机制可为系统提供更好的安全性保障。
否(2)是(3)否(4)是(5)否(6)是(7)是(8)否
【问题2】
(1)本系统中应主要使用水平分区机制。根据已知信息,系统数据库中存储的主要数据为以用户标识为索引的社交网络数据,采用水平分区机制可根据用户标识将用户数据进行水平分割,用户操作时先将请求分发到不同数据库分区,再进行具体数据库操作,以提高数据库访问效率。
(2)引入主从复制机制所带来的好处:
①避免数据库单点故障:主服务器实时、异步复制数据到从服务器,当主数据库宕机时,可在从数据库中选择一个升级为主服务器,从而防止数据库单点故障。
②提高查询效率:根据系统数据库访问特点,可以使用主数据库进行数据的插入、删除及更新等写操作,而从数据库则专门用来进行数据查询操作,从而将查询操作分担到不同的从服务器以提高数据库访问效率。
【问题3】
(a)(1)Memcached缓存(2)数据库(3)Memcached缓存
(4)数据库(5)Memcached缓存
(b)使用Memcached代替数据库查询缓存的原因:
(1)缓存架构:数据库查询缓存通常每个数据库只有一个实例,因此存储内容受数据库服务器可用内存限制,可缓存数据有限。而Memcaehed可采用高速分布式缓存服务器结构,不受数据库服务器约束,可扩展性更好。
(2)缓存有效性:数据库查询缓存只要在发生写操作时就会失效,即使更新的是数据库中的其他行。而Memcached可通过键值将数据进行散列缓存,有效降低缓存的更新频率,从而提高缓存的有效性。
(3)缓存数据类型:数据库查询缓存只能缓存数据库行,对社交网站好友动态显示等典型业务所需要的组合数据缓存缺乏有效支持,而Memcached理论上可缓存任何内容。因此可以将分散在数据库中的关系或者列表组合后进行缓存,以提高缓存数据的针对性和效率。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42678822/article/details/143327868

软考-爱代码爱编程

鸿蒙架构 鸿蒙操作系统是一款面向未来、面向全场景的分布式操作系统,在传统的但设备系统能力的基础上,HarmonyOS提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持多种终端的能力。 考题1:下图中部分节点挖空,补填文字或者选择填空。 考题2:列举鸿蒙操作系统的四个技术特征 1)分布式架构首次用于终端OS,实现跨终端无缝协同体验

20241017软考架构-爱代码爱编程

每日打卡题案例3答案 3.【2018年真题】 难度:一般 阅读以下关于分布式数据库缓存设计的叙述,在答题纸,上回答问题1至问题3.(共25分) 【说明】 某企业是为城市高端用户提供高品质蔬菜生鲜服务的初创企业,创业初期为快

20241016软考架构-爱代码爱编程

案例2 2.【2017年真题】 难度:一般 阅读以下关于数据库设计的叙述,在答题纸上回答问题1至问题3。(共25分) 【说明】 某制造企业为拓展网上销售业务,委托某软件企业开发一套电子商务网站。初期仅解决基本的网上销售、订

孤岛架构与微服务架构区别-爱代码爱编程

孤岛架构(Island Architecture)和微服务架构(Microservices Architecture)都是现代软件架构设计中的概念,它们都强调将大型系统分解为更小、更独立的部分。 尽管它们在目标和方法上有相似之处,但它们在设计理念、实现方式和应用范围上存在一些关键区别。 孤岛架构 定义:孤岛架构是一种软件架构模式,它将系统分解为多个独

15 docker容器存储架构:docker存储驱动简介-爱代码爱编程

文章目录 一、Docker 存储驱动探索 1.1 存储驱动 1.2 存储驱动方式

20241028软考架构-爱代码爱编程

每日打卡题案例8答案 【2014年真题】 难度:一般 请详细阅读以下关于网络设备管理系统架构设计的说明,回答下列问题。(25分) 【说明】 某软件公司欲开发一个网络设备管理系统,对管理区域内的网络设备(如路由器和交换机等)

ddd之架构重构-爱代码爱编程

前言 MVC 旧工程腐化严重,迭代成本太高。DDD 新工程全部重构,步子扯的太大。 这是现阶段在工程体系化治理中,我们所面临的最大问题:既想运用 DDD 的思想循序渐进重构现有工程,又想不破坏原有的工程体系结构以保持新需求的

16 docker容器存储架构:docker存储持久化-爱代码爱编程

文章目录 二、docker存储持久化-volume 2.1 创建一个卷 2.2 查看卷信息

深度了解flink 运行时架构-爱代码爱编程

前言 Flink 架构 Flink是目前算是实时计算的事实标准,背靠Apache活跃的社区和国内阿里技术团队的支持,社区生态十分丰富,本篇文章主要介绍flink的结构,对flink的各个组件有个更清晰的认识。 flink官网对flink的架构有很清晰的介绍,强烈推荐刚接触或者想对flink有深入了解的同学学习flink,我会在官网介绍的基础上补充自己

20241028软考架构-爱代码爱编程

每日打卡题案例7答案 【2013年真题】 难度:一般 阅读以下有关表现层设计方面的说明,回答问题。 【说明】 某商业银行欲开发一套个人银行系统,为用户提供常见的金融服务,包括转账、查询、存款变更和个人信息管理等功能。该软件除

20241025软考架构-爱代码爱编程

每日打卡题案例6答案 【2013年真题】 难度:简单 阅读以下关于企业应用系统集成架构设计的说明,回答问题。 【说明】 某航空公司希望对构建于上世纪七八十年代的主要业务系统进行改造与集成,提高企业的竞争力。由于集成过程非常复

20241021软考架构-爱代码爱编程

每日打卡题案例4答案 1.【2012年真题】 难度:难 阅读以下关于分布式系统设计的叙述,回答问题。 【说明】 某软件公司拟开发一套电信领域的分布式系统,该系统后台多个功能模块同时运行时的计算负载较大,且需要控制不同的特定

20241029软考架构-爱代码爱编程

每日打卡题案例9答案 【2014年真题】 难度:简单 请详细阅读有关软件架构评估方面的说明,回答下列问题。(25分) 【说明】 某电子商务公司拟升级目前正在使用的在线交易系统,以提高客户网上购物时在线支付环节的效率和安全性