以Proxy模式调整之后有效实现了职責的分离,DBManager类只关注数据操作逻辑而不用关心权限判断逻辑,在此仅为Add操作为例来说明:
而将权限的判断交给DBManagerProxy代理类来完成例如:
//处悝权限判断的逻辑
通过代理,将数据操作和权限判断两个职责分离而实际的数据操作由DBManager来执行,此时客户端的调用变得非常简单:
疑问: DBManagerProxy类里面不是还是有2个职责吗(2个方法) 一个是判断权限GetPermission(),一个是Add()添加数据? 为什么说已经把这2职责分离了?
- 正向代理服务器时由客户端设立嘚
- 客户端了解代理服务器和目标服务器是谁
- 帮助咱们实现突破访问权限,提高访问速度,对目标服务器隐藏客户端的ip地址
- 反向代理服务器是配置在服务器端的
- 客户端是不知道访问的是到底是哪一台服务器
- 达到负载均衡,并且可以隐藏服务器真正的ip地址
#基于反向代理访问到Tomcat服务器 #精准匹配,主机名ip后面不能带任何字符串 #匹配所有以xxx开头的路径
#匹配所有以xxx开头的滤镜 #匹配所有以/images开头的路径 #匹配以gif或者jpg或者png结尾的路径
Nginx为我們提供了三种负载均衡的策略
将客户端发起的请求,平均分配给每一台服务器 会将客户端的请求,根据服务器的权重值不同,分配给不同的数量 基于发起请求的客户端ip地址不同,他始终会将请求发送到指定的服务区上