Java架构-高并发的解决方案( 四 )

3.集群与分布式

集群是每台服务器都具有相同的功能 , 处理请求时调用那台服务器都可以 , 主要起分流作用 。

分布式是将不同的业务放到不同的服务器中 , 处理一个请求可能需要用到多台服务器 , 这样就可以提高一个请求的处理速度 , 而且集群和分布式也可以同时使用 。

集群有两个方式:一种是在静态资源集群 。 另一种是应用程序集群 。 静态资源集群比较简单 。 应用程序集群在处理过程中最核心的问题就是Session 同步问题 。

Session 同步有两种处理方式:一种是在Session 发生变化后自动同步到其他服务器 , 另一种就是用个程序统一管理Session 。 所有集群的服务器都使用同一个Session , Tomcat 默认使用就是第一种方式 , 通过简单的配置就可以实现 , 第二种方式可以使用专门的服务器安装Mencached等高效的缓存程序统一来管理session , 然后再应用程序中通过重写Request并覆盖getSession 方法来获取制定服务器中的Session 。

对于集群来说还有一个核心的问题就是负载均衡 , 也就是接收到一个请求后具体分配到那个服务器去处理的问题 , 这个问题可以通过软件处理也可以使用专门的硬件(如:F5)解决 。

推荐阅读