什么是集群?集群?java集群技术面试的一些知识准备(2)

电脑杂谈  发布时间:2016-09-02 15:00:02  来源:网络整理

当客户端请求到来时,负载均衡器决定将此请求分发到后端的哪台服务器实例上。经常使用的算法包括轮询、随机和基于权重的算法。负载均衡器试图均衡每个服务器实例上的工作负载,但上述算法都不可能真正实现理想的均衡,因为他们仅仅考虑到了分发到特定服务器实例的请求数量。使用复杂算法的负载均衡器通过特殊算法在分发请求之前将探测每台服务器的工作负载。

心跳线检查

当某个服务器实例失败时,负载均衡器需要检测到该失败并取消分发到该实例的请求。负载均衡器也需要监控失败的服务器何时重新开始服务,并开始对其分发请求。

会话持久

几乎所有的Web应用都使用会话状态来记录诸如登录、购物车等信息。因为HTTP协议本身是无状态的,会话状态需要保存起来并与浏览器会话关联。在负载均衡的状态下,最佳选择是将请求分发到与该浏览器会话的上次请求同一的服务器实例上。否则,可能会导致应用工作不正确。
 
因为会话状态是在Web服务器实例的内存空间中存储的,所以“会话持久”就相当重要了。但当一个服务器实例失败后,所有该实例中的会话信息就会丢失。所以,我们即需要会话的失败转移。
 
HTTPSession失败转移
主流的Java EE供应商都实现了HTTPSession失败转移。当浏览器在访问有状态的Web应用时,在该服务器的内存中会创建会话对象。与此同时将能唯一确定会话对象的HTTPSession ID发送至浏览器。浏览器将该ID作为cookie存储,并在下次请求该Web应用时将此cookie发送至Web服务器。

为了支持会话失败转移,Web服务器中的会话对象将被备份下来,以备服务器失败时防止会话信息丢失。负载均衡器将检测到实例的失败,并将后续请求分发到其他服务器实例上。由于会话对象已经被备份下来了,处理请求的新服务器实例就能恢复该会话的信息,继续正确处理会话。

要实现上述功能,需要引入以下内容:

    全局HTTPSession ID

上面已经讲过,HTTPSession ID用来标识特定服务器实例中的内存会话对象。在Java EE中,HTTPSession ID根据JVM实例来产生。每个JVM实例能驻留多个Web应用,每个应用能为不同的用户保存HTTPSession。HTTPSession ID是在当前JVM实例中访问相关会话对象的关键。在会话失败转移的实现中,不同的JVM实例不能生成相同的HTTPSession ID。如若不然,在失败转移发生时,就不知道哪个对象是应该恢复的对象。所以,需要引入全局HTTPSession ID机制。

    备份会话状态的机制

后续的描述中会有这方面的内容。将来我还着手写一片比较各主流服务器中会话备份机制的具体实现的文章。

    备份频率和粒度

HTTPSession状态的备份会造成额外开销,比如CPU时间周期、网络带宽和磁盘或I/O。备份操作的频率和粒度的选择都可能影响集群的性能。
 
持久化办法
一些的Java EE集群产品都支持使用JDBC通过关系型备份会话状态。让服务器实例序列化会话内容并在适当的时候将他们保存在中。当失败转移发生时,另一可用的服务器实例接管失败的服务器实例,并从中恢复所有的会话状态。对象的序列化是其中的一个关键点,这样内存中的会话数据就可以得到持久化并可进行移植。
通常,执行的事务会造成一些额外的开销,所以本方法的主要缺陷在于当并发数据量较大时可能无法提供需要的可扩展性。大部分采用会话持久化方法的应用服务器供应商都建议尽量减少HTTPSession存储的对象,但这又可能影响到web应用的架构和设计,尤其是在需要使用HTTPSession存储用户数据的时候。
 
采用持久化方法的优点在于:

    易于实现。
    由于对集群中的所有节点都共享,所以,可以实现对会话数据的失败转移。
    即使在集群的所有节点都瘫痪的情况下,会话数据依然能够得到保留。

内存复制办法
Tomcat、JBoss、WebLogic、Websphere之流的Java EE服务器都提供了另一种实现:内存复制。
在上图中描述了使用内存复制技术来实现会话状态备份的场景。本方法的性能很好。之余持久化技术,在原服务器和一台或多台备份服务器之间进行直接内存复制对网络通信的影响很小。但是,不同厂商的服务器对内存复制技术的应用方式不同(在下面有具体描述),有的厂商采用的技术就不再需要“恢复”的过程了,即会话数据备份时已驻留在备份服务器的内存中,当备份服务器接管时,所有的数据已经存在。

灵感记录 是本站开发的一款收藏记录创意分享 ,开启高效之门的应用。
点击:【收藏】 收藏此文

以上就是关于集群技术的全部内容,相信你一定会非常满意。


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/shenmilingyu/article-15745-2.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 赵红
      赵红

      凭什么要跟一个与自己制度不同的大陆成为一个国家呢

      • 方恒
        方恒

        现在都搞互联网销售了

    • 天心
      天心

      你老婆也行

    • 艾克拜尔艾比布
      艾克拜尔艾比布

      望月怀远

    热点图片
    拼命载入中...