欢迎来到天天文库
浏览记录
ID:9750753
大小:53.00 KB
页数:4页
时间:2018-05-07
《集群的可扩展性及其分布式体系结构之八》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、集群的可扩展性及其分布式体系结构之八 缺乏对Session的支持 现在的许多网页都是由一些动态网页程序(ASP、JSP、PHP等)所写成的,其中都会支持Session的功能,这个功能通过在服务器上面记录客户端的诸如用户身份等会话信息,可以视做是Server端的cookie。程序员可以把一些重要的资料如登录用户的数据、权限或者是当前购物车的状态等信息存储在Server端,这样可以避免使用一般客户端cookie造成的敏感信息容易被获取的安全性问题。服务端session是由服务器上的cookie文件实现的,当客户端连接的时候,服务器会给客户端一个含有se
2、ssionid的cookie信息,客户端之后的request都会附带着这个cookie。Server则根据这个id来索引客户端的session。通过这样的方式,保证一些会话级的通信能够顺利进行。 所以对于这样的应用,负载平衡器必需建立一个全局的Hash映射表,记录某个客户端的IP地址和服务器的Session标记的映射关系,在下次客户端的请求到来时,必需要根据请求中的cookie来做负载平衡,重定向到原来的server。而面向连接的集群技术因为仅对请求的地址和端口信息进行负载平衡,所以可能会把同一个会话的请求重定向到另一台server,这样就造成了很严
3、重的错误,因为客户端的数据是存放在原来那台server里的。这样的情况常见于电子商务网站中,例如购物网站需要提供购物车的记录功能,用户在登陆其需要纪录购物车的已购物品状态,如果集群不支持面向会话的调度,无法在不同的连接之间有效的保持会话的信息,就会导致会话无法持续。比如,用户会发现已经购买的物品在购物车中找不到,或者是服务器不断提示用户登录等错误。 不支持SSL交换 在电子商务中,为了确保交易时信用卡数据不被盗取,常常会使用SSL技术做为传送数据的协议,不过SSL算法必需要花掉许多的计算的时间加密传输的数据。为了减少时间,SSL提供重复使用同一个s
4、ession的功能。为了能够重复使用同一个session,平衡器必需要记录客户端请求中SSL会话标记和服务器的映射表。这也必需要负载平衡器能够识别请求中的协议内容。 如果均衡器不知道客户端的SSL的会话标识,而那些不带有相关cookie信息的节点无法对该请求进行服务响应(例如,需要验证请求的身份),均衡器错误的把同一个会话的请求转发到不同的服务器上--这直接导致SSL的通信失败。对于一个具备内容均衡的负载平衡系统里来讲,它可以识别出会话标记,把同一个SSL会话的数据转发到同一台服务器。而对于新的SSL会话请求,可以开辟新的连接映射,选择负载比较轻的主
5、机进行。通过SSL会话Session的复用,最大程度的加快了集群的服务吞吐量和整体性能。 内容分区 对于集群系统而言,可扩展性也包括了对存储的考虑,即文件系统的可扩展性。对于面向连接的交换而言,由于采用了集中式的调度策略,负载平衡器必须无差别的统一看待所有的服务结点,认为节点的所能提供的服务能力和内容是完全一致的。这就要求所有的服务结点使用同一份内容镜像,或者共享一个大容量的磁盘。但是,这样的方式大大限制了服务结点文件系统的可扩展性: 第一,由于所有的节点保存同样的内容,实际上集群的存储容量限制在了一台节点的存储能力上,假设每台节点提供80G的存
6、储空间,10台节点构成的集群也还是只能提供80G的存储能力,无法获得更高的扩充; 第二,内容的同步和一致导致集群内部通信极大的开销。对于非只读的集群系统而言,由于内容的更新可能发生在任何一个节点上,因此需要有一种可靠的、实时的机制来将文件内容的变化同步到所有的其他接点之上。即使使用全局同步内容的做法,也无法解决面向连接调度的负载平衡集群固有的缺陷。 第三,如果采用集中式存储,又会导致网络磁盘I/O的瓶颈。如果采用集中式的存储服务器,比如NFS文件服务器或者共享RAID、NAS设备等,可以解决服务结点内容不一致的问题,但是这也限制了集群节点的最大数量
7、。对于仅有2~4台节点的集群,使用NAS高速设备共享存储是一个比较经济、简单的解决办法,因为任何一个数据库系统或者文件系统在100M以太网上足以应付少量节点的并发访问请求。但是随着更多的服务结点的加入,集中存储就变成集群系统的瓶颈,同时也消耗了大量的内部带宽。因此,对于可扩展性要求比较高的系统而言,不适合采用集中式存储。 另外,就目前的技术发展状况,集中式存储的性能价格比会随着存储容量的增加而迅速下降。因此,从性能、成本、可扩展性等角度考虑,不适合使用集中存储来处理集群问题。 如果负载平衡器可以根据数据包中的协议信息(例如URL信息)得知客户端请求
8、的内容,并对之进行分类处理,把请求正确地导向储存该内容的服务器。如,可以把内容分为html、c
此文档下载收益归作者所有