参考答案:
【问题1】(10分)
基于DNS的负载均衡是在DNS服务器中为同一个主机名配置多个IP 地址,在应答DNS 查询时,DNS 服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,将客户端的访问引导到不同的节点上去,使得不同的客户端访问不同的节点,从而达到负载均衡的目的。
反向代理负载均衡。反向代理负载均衡是将来自Internet上的连接请求以反向代理的方式动态地转发给内部网络上的多个节点进行处理,从而达到负载均衡的目的。
(1)否
(2)是
(3)否
(4)是
(5)否
(6)是
(7)是
(8)否
【问题2】(7分)
本系统应采用水平分区,因为社交网络数据库的数据表记录数量非常庞大,而且记录的访问,大多集中于本地区域,所以水平分区能极大提高处理效率。
主从复制机制使得同样的数据,存在多个副本,这样让用户查询数据时,可以选择该数据最近的副本进行访问,提高效率,降低资源使用时的冲突。另一方面主从复制机制中一台数据库服务器故障不会导致站点无法访问。
【问题3】(8分)
(1)Memcached缓存
(2)数据库
(3)Memcached缓存
(4)数据库
(5)Memcached缓存
Memcached相比数据库查询缓存:
缓存架构:数据库查询缓存只是将查询结果进行缓存,适用面很窄,而Memcached缓存是将数据库中的表进行缓存,对于在这些表之上的操作均可适用。
缓存有效性:Memcached缓存时效较长,只要未更新,就属于有效状态,而数据库查询缓存时效较短(具体时效与配置有关),所以在此方面Memcached缓存有优势。
缓存数据类型:Memcached缓存数据为表级,而数据库查询缓存为元组级。
详细解析:
【问题1】
基于DNS的负载均衡。基于DNS的负载均衡是在DNS服务器中为同一个主机名配置多个IP 地址,在应答DNS 查询时,DNS 服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,将客户端的访问引导到不同的节点上去,使得不同的客户端访问不同的节点,从而达到负载均衡的目的。
DNS 负载均衡的优点是经济、简单易行,并且节点可以位于Internet上任意的位置。但它也存在不少缺点,例如,为了保证DNS数据及时更新,一般都要将DNS的刷新时间设置得较小,但太小就会造成太大的额外网络流量,并且更改了DNS数据之后也不能立即生效;DNS负载均衡采用的是简单的轮转算法,不能区分节点之间的差异,不能反映节点的当前运行状态,不能做到为性能较好的节点多分配请求,甚至会出现客户请求集中在某一个节点上的情况。另外,要给每个节点分配一个Internet上的IP地址,这势必会占用过多的IP地址。
反向代理负载均衡。反向代理负载均衡是将来自Internet上的连接请求以反向代理的方式动态地转发给内部网络上的多个节点进行处理,从而达到负载均衡的目的。反向代理负载均衡既能以软件方式实现,也能在高速缓存器和负载均衡器等硬件设备上实现。反向代理负载均衡可以将优化的负载均衡策略和代理服务器的高速缓存技术结合在一起,提升静态网页的访问速度,提高系统性能。另外,由于网络外部用户不能直接访问真实的节点计算机,反向代理负载均衡还具备额外的安全性(同理,基于NAT的负载均衡也有此优点)。
反向代理负载均衡的缺点主要表现在两个方面。首先,反向代理处于OSI参考模型应用层,因此,必须为每种应用服务专门开发一个反向代理服务器,这样,就限制了反向代理负载均衡技术的应用范围,现在一般都用于对Web服务器的负载均衡;其次,针对每一次代理,代理服务器都必须打开两个连接,一个对外,一个对内。在并发连接请求数量非常大的时候,代理服务器的负载也就非常大,代理服务器本身会成为服务的瓶颈。
【问题2】
根据已知信息,系统数据库中存储的主要数据为以用户标识为索引的社交网络数据,采水平分区机制可根据用户标识将用户数据进行水平分割,用户操作时先将请求分发到不同数据库分区,再进行具体数据库操作,以提高数据库访问效率。因此本系统中应主要使用水平分区机制。在系统中引入主从复制机制,首先可以利用主从复制机制的备份功能避免系统数据库单点故障:其次已知“系统运行时发生的大部分数据库操作为查询操作”。因此可以使用主数据库进行数据的插入、删除及更新等写操作,而从数据库则专门用来进行数据查询操作,从而将查询操作分担到不同的从服务器以提高数据库访问效率。
【问题3】
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。
Mysql查询缓存的作用就是当查询接收到一个和之前同样的查询,服务器将会从查询缓存种检索结果,而不是再次分析和执行上次的查询。这样就大大提高了性能,节省时间。
与MySQL查询缓存相比,使用Memcached机制存在以下优势:
(1)缓存架构:数据库查询缓存通常每个数据库只有一个实例,因此存储内容受数据库服务器可用内存限制;可缓存数据有限;而Memcached可采用高速分布式缓存服务器结构,不受数据库服务器约束,可扩展性更好。
(2)缓存有效性:数据库查询缓存只要在发生写操作时就会失效,即使更新的是数据库中的其他行;而
Memcached
可通过键值将数据进行散列缓存,有效降低缓存的更新频率,从而提高缓存的有效性。
(3)缓存数据类型:数据库查询缓存只能缓存数据库行,对社交网站好友动态显示等典型业务所需婴門组合数据缓存缺乏有效支持,而Memcached理论上可缓存任何内容,因此可以将分散在数据库中的关系或者列表组合后进行缓存,以提高缓存数据的针对性和效率。