J2EE集群最重要的两点就是能够实现负载均衡和失效转移。

  1. WEB层的集群

    web层的集群主要包括web负载均衡和httpsession的失效转移这两个方面。

    1.1 web负载均衡的实现包括三方面:

        负载均衡算法:当请求来临时,决定由那个服务器来处理

        健康检测:如果某个服务器失效,将不再接受新的请求

        会话胶粘:web应用程序都有相应的会话状态,因为HTTP是无状态协议,因此服务器会保存相应               的会话状态,保证请求被正确处理,当服务器失效,相应的会话状态就会丢失,因               此引入了http session的失效转移。

   1.2 http session的会话转移

        当浏览器访问有状态的web应用程序,服务器会创建一个内存对象并将相应的会话状态存储在这    个内存对象中,同时生成一个会话id返回给客户端,客户端将这个id存放在cookie中,当浏览器再次访问这个web应用程序时,就会携带相应的会话id,这样服务器就能根据这个id找到对应的会话状态了。为了避免服务器失效时,会话状态丢失,服务器会在某个时刻将这些会话状态保存在其他的服务器上,这就是http session 会话失效的由来,具体示意图如下:

J2EE集群_第1张图片

httpSession的会话会话转移带来如下几个问题:

全局的会话id(保证转移时不会出现id冲突)

如何备份?

a、将会话状态序列化之后存放在数据库中

b、内存复制

    多服务器复制,例如:Tomcat

    对等服务器复制,例如:Jboss

备份的频率和粒度