分布式文章
第一章
1. 正向代理&反向代理
正向代理: 客户端知道真实请求的地址,但是直接访问访问不到(防火墙之类)。此时可以通过一个正向代理服务器(代理服务器可以直接访问),先将请求发送到代理服,代理服去目标服务器请求资源再返回给客户端。
正向代理用途:
(1)访问原来无法访问的资源,如google
(2) 可以走缓存,加速访问资源
(3) 对客户端访问授权,上网进行认证
(4) 代理可以记录访问记录(上网行为管理),对外隐藏用户信息
反向代理: 对于客户端来说,代理服务器就是源服务器,客户端发送请求后,由代理服务器转发到真实服务器。客户端并不知道真实服务器的地址
反向代理用途:
- 保证内网的安全,阻止web攻击,大型网站,通常将方向代理作为公网访问地址,Web服务器是内网
- 负载均衡,通过反向代理服务器来优化网站的负载
小总结
- 正向代理,客户端知道实际服务端,服务端只知道代理服务器,不知道实际客户端
- 反向代理,服务端知道客户端,客户端只知道代理服务器,不知道实际服务端
2. CDN
CDN本质上是将媒体资源,动静态图片(Flash),HTML,CSS,JS等等内容缓存到离你更近的IDC(互联网数据中心Internet Data Center),从而让用户共享资源,实现缩减站点间的相应时间等等需求
CDN基本思路就是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上
3. 一致性Hash
为了在加入/减少节点时候减少数据的迁移
4. LRU && LFU
主流的缓存算法,两种算法都有延伸算法
LRU: 替换掉最近被请求次数最少的对象
LFU: 替换掉访问次数最少的缓存
详细见: