|
447 | 447 | ## 分布式/集群等高级主题
|
448 | 448 |
|
449 | 449 | 1. Session 集群同步问题。
|
| 450 | + - 首先 Session 集群的话会有两种方式存放 Session。 |
| 451 | + - 一种是将同一个用户每次都负载均衡到同一个请求处理服务器,这样不需要考虑 Session 同步的问题 |
| 452 | + - 一种是每台 Session 服务器都保存所有的 Session 信息,当一台 Session 服务器中的 Session 有更新了就将更新同步到其他所有的 Session 服务器上 |
| 453 | + - Session 的持久性类型 |
| 454 | + 1. 内存 |
| 455 | + 1. 数据库 |
| 456 | + 1. 文件系统 |
450 | 457 | 1. 负载均衡原理
|
| 458 | + - 负载均衡有硬件和软件两种,一般用的都是基于软件的负载均衡。软件负载均衡一般分为四层和七层: |
| 459 | + - 四层的工作在 TCP/IP 协议栈上通过修改数据包的 IP 和 端口号 来转发,效率相对七层的来说会更高一点,一般在前端服务器中使用。LVS 就是用这种方式实现的。 |
| 460 | + - 七层的工作在应用层,可以做到更智能的负载均衡。一般部署在前台服务器和应用服务器之间。Apache 和 Nginx 都是七层的。 |
451 | 461 | 1. 负载均衡算法
|
| 462 | + 1. 随机:负载均衡方法随机的把负载分配到各个可用的服务器上。 |
| 463 | + 1. 轮询:按顺序将新的连接请求分配给下一个服务器 |
| 464 | + 1. 加权轮询:每台服务器接受到的连接数按权重分配,一般是用在应用服务器的处理能力大小不同的情况下。 |
| 465 | + 1. 最少连接:把新连接分配给当前连接最少的服务器 |
| 466 | + 1. BLABAL... |
452 | 467 | 1. 分布式数据库
|
453 |
| -1. 数据缓存服务器 |
| 468 | + - 分布式数据库提供了原来集中式数据库不具备的高可用性和拓展能力 |
| 469 | + - 分布式数据库的架构一般有以下几个 |
| 470 | + 1. 厂商提供的集群产品 |
| 471 | + 1. 数据分片。将原来集中式数据库中的数据进行切分,分别存放在不同的服务器中。 |
| 472 | + - 优点: 集群扩展能力很强,几乎可以做到线性扩展,而且整个集群的可用性也 很高,部分节点故障,不会影响其他节点提供服务 |
| 473 | + - 缺点:如果需要跨不同的节点做 join,或者统计类型的操作,将会变得非常困难 |
| 474 | + 1. 读写分离。使用数据库的复制技术,每台服务器上都有完整的数据副本。读和写分布在不同的处理节点上。比较适合读操作较多的应用 |
| 475 | + - 优点:可以通过增加提供读操作的服务器数量来线性增加读操作的性能 |
| 476 | + - 缺点:每个节点都必须保存完整的数据,在数据量很大时集群的拓展能力还受限于单个节点的存储能力。不适合写操作较多的应用 |
| 477 | + - 一般来说缓存 + DB 的读写分离架构用的是比较多的。缓存层使用 key-value 的形式来承载大量的读操作,DB 承载数据持久化。一般过程如下(基于 memcached):用户的读请求会首先访问缓存,如果缓存命中,则返回;如果没有命中则将数据加载到缓存中再返回。对于插入、修改、删除操作,一般使用延缓加载的策略,也就是直到下次读取时才更新缓存。(删除和修改操作会将缓存中的数据标记为已失效) |
454 | 478 |
|
455 | 479 | ## 技术开放题
|
456 | 480 |
|
|
555 | 579 | 1. [【Spring】Spring MVC原理及配置详解 ](http://blog.csdn.net/jianyuerensheng/article/details/51258942)
|
556 | 580 | 1. [springMVC学习笔记(一)-----springMVC原理](http://www.cnblogs.com/selene/p/4658554.html)
|
557 | 581 | 1. [Spring 框架的设计理念与设计模式分析](https://www.ibm.com/developerworks/cn/java/j-lo-spring-principle/)
|
558 |
| -1. [Spring 使用笔记之(二) - AOP和Interceptor(拦截器)](http://www.hifreud.com/2015/01/28/04-spring-AOP/#%E6%8B%A6%E6%88%AA%E5%99%A8interceptor%E7%9A%84%E4%B8%89%E7%A7%8D%E5%AE%9E%E7%8E%B0) |
| 582 | +1. [Spring 使用笔记之(二) - AOP和Interceptor(拦截器)](http://www.hifreud.com/2015/01/28/04-spring-AOP/#%E6%8B%A6%E6%88%AA%E5%99%A8interceptor%E7%9A%84%E4%B8%89%E7%A7%8D%E5%AE%9E%E7%8E%B0) |
| 583 | +1. [深入理解各JEE服务器Web层集群原理](http://www.infoq.com/cn/minibooks/jee-webserver-cluster) |
| 584 | +1. [服务器集群负载均衡原理?](https://www.zhihu.com/question/22610352) |
| 585 | +1. [负载均衡的基本算法](http://www.cnblogs.com/shanyou/archive/2012/11/09/2763272.html) |
| 586 | +1. [可扩展的分布式数据库架构](http://blogread.cn/it/article/1945?f=wx) |
| 587 | +1. [分布式缓存系统Memcached实践](http://www.jianshu.com/p/e5b11670c3bb) |
0 commit comments