就在课堂上对客户机服务器模式的讲解做一些自己的总结归纳,如下:
首先回答一下课上同学的提问
---三层架构中的中间件为什么能起到加强系统安全的作用呢?
三层结构中客户端(理解为前台交互)没有和服务端(理解无DB后台数据层)直接交涉,假设一下如果客户端可以直接访问服务端,客户端和数据库层紧密耦合,数据结构完全暴露(就比如网页端之间查看源代码就可以看见所操作的表结构)、也无法做到加密,而通过中间层则可以在传输过程中进行数据加密,进行数据筛选等一系列操作,相比之下一个是直接操作一个是处理之后再操作,显然加入中间件之后显得更加安全。
下面就京东图书活动服务器崩溃的实例进行分析
客户机服务器的特定环境是:
当海量客户端用户对服务器进行访问操作。
客户机服务器的面对的一个问题:
客户端服务器出现了资源不对等,如何实现资源共享?
针对京东图书活动的解决方案:
1增加服务器数量
-----咚锵咚锵咚咚锵强东欧巴增加了三倍服务器,虽然效果可见一般但至少也能起到一定作用
2优化数据库-连接池访问数
------设置一个访问数据库额最大量,因为数据库本身的服务能力是有限,所以可以给定限定,以MySQL为例,可能MySQL可以支持的并发连接数可能也就几千个,在限定之外的访问就需要另做处理但至少我们保证了限定内的用户可以进行正常访问。
3二层发展成三层-中间件筛选过滤:
----如消息队列
京东图书下单实时处理的,直接写库,所以导致数据库压力过大。而出国采用异步处理,中间添加队列处理,在访问限定之外就可排队等待,使的重负载情况下的负载平衡,并减轻数据库的压力。如图为16年京东的自主研发的有关于消息队列中间件
京东11.11:京东中间件如何支撑起每一场大促
4 客户端服务器模式由起初的二层变三层
----两层和三层的区别:
两层结构是客户端程序直接访问服务器的结构,在两层体系结构中,表现层对数据库进行直接操作,且大部分的商业处理逻辑也在表现层中实现。就如同在我们写代码前期,将所有的逻辑操作都放在jsp界面处理。
三层结构是在客户端和服务器中间加了一个事务逻辑处理封装的中间件作为沟通,这样的结构就是三层结构。所以三层就是:表现层、商业逻辑层、数据层,表现层将主要提供与客户的交互功能,数据层提供系统中的所有的数据保存载体,而商业逻辑层将整个系统中的商业处理逻辑整和在一起,各尽其职。
OK,写到这里,就客户端服务器模式的一个特定环境一个问题一个解决方案一个实例就总结完毕啦~