客户端-服务器模式分析
客户端-服务器模式定义
架构模式是一个通用的、可重用的解决方案,用于在给定上下文中的软件体系结构中经常出现的问题。
架构模式与软件设计模式类似,但具有更广泛的范围。(维基百科)
而客户端-服务器模式由两部分组成:一个服务器和多个客户端。服务器组件将为多个客户端组件提供服务。
客户端从服务器请求服务,服务器为这些客户端提供相关服务。此外,服务器持续侦听客户机请求。
客户端-服务器模式的特定场景与面临的问题以及解决方案和实例
特定场景:大量用户访问如何进行优化客户端海量资源
一个问题:资源不对等,如何实现资源共享
解决方案:
1 增加服务器数量
2 优化数据库-连接池访问数
3 二层发展成三层-中间件筛选过滤
4 优化客户端,服务器处理完后0.06秒已已经处理完,已传输到了但在5秒客户端才显示。
5 中间加队列,减少数据库的压力
(该图片与本文内容无关)
实例:京东图书
实例描述:2011年京东为了给其旗下京东图书造势,推出大幅度优惠政策,致使活动当天服务器崩溃,强东一怒之下又添了几台昂贵的服务器,然并卵,添加服务器之后不久,服务器再次崩溃~~(不争气的服务器),好吧,我承认是访问的人太多了。
实例分析:软件架构设计出现了问题,没能很好的处理大规模用户的访问,造成了崩溃,还记得强东当时在文博发文说加3倍的服务器,然而,不改变架构,只是从表面上去解决问题,那么最终一定还是会导致崩溃(事实证明没错,加了之后又崩溃了)。
解决方案见上面的分析。
客服端-服务器模式的优势和劣势:
优势
●在大多数情况下,客户机服务器体系结构允许的角色和责任的计算系统是其中几个已知只有通过网络互相独立的计算机分发。这将创建一个额外的优势,这种体系结构:提高维护的简便性。例如,它可以更换,维修,升级,甚至迁移服务器,同时它的客户都不知情,并保持该更改的影响。
●所有数据都存储在服务器上,通常比大多数客户更大的安全控制。服务器可以更好地控制访问和资源,以保证只有那些具有适当权限的用户可以访问和更改数据。
●由于数据的集中存储,对数据的更新是更容易管理相比,一个P2P模式。在后者,数据更新可能需要分发和应用到每个网络中的对等,既费时又容易出错,因为可以有成千上万甚至数百万的同龄人。
●许多成熟的客户端服务器技术已经可以方便的目的是确保安全,用户界面友好,易用性。
●具有不同功能的多个不同的客户它的功能。
劣势
●作为客户端同时请求数给定的服务器的增加,服务器可以成为重载。对照到一个P2P网络,在其总带宽实际上增加为节点的添加,由于P2P网络的总带宽可以大致计算作为该网络中每个节点的带宽的总和。
●客户机服务器模式缺乏一个良好的P2P网络的鲁棒性。在客户端服务器,如果一个重要的服务器失败,客户的要求不能得到满足。在P2P网络,资源通常分布在许多节点。即使一个或多个节点出发,放弃一个下载文件,例如,剩下的节点应该还是有必要来完成下载的数据。
(放张图片镇楼)