基于集群的高可用HTTP服务器
【摘要】:计算机网络应用的迅猛发展,对网络上的服务器提出了越来越高的要求。很多服务要求7X24小时不间断,如电子商务等,一旦服务中断将造成灾难性的后果,因此要求服务器有极高的可用性。使用高端硬件实现高可用性费用太高,扩展性差。使用多台低端机组成集群,依靠软硬件冗余的方式是经济而易行的方法。
Linux作为一个开发源码的优秀操作系统已经大量应用在服务器上。本文分析了Linux下一个开放源码的集群软件KTCPVS,该软件的目的是通过内容调度的策略实现HTTP的负载均衡的集群。在此项目的基础上本文提出了提供高可用性HTTP服务的集群软件HA-HTTP。HA—HTTP系统中多个HTTP服务器同时运行,一个服务器节点失效对客户端几乎不造成影响,只有当所有节点同时失效才会造成整个服务的停止,几何级数的提高了服务的可用性。
KTCPVS为了避免内核态和用户态的上下文切换,采取了在Linux中插入内核模块的方式。本文简单介绍了Linux内核编程的基础知识,分析了与HA-HTTP相关的Linux网络实现的源代码。
HA-HTTP是一个运行在集群系统前端机上的软件,起类似数据交换作用。HA-HTTP在交换HTTP报文时遇到的一个最大的困难是处理保持状态的HTTP会话。本文分析了HTTP状态管理机制,详细解剖了
c。。kie方式下状态会话的具体实现,给出能够在服务器和客户端之间
透明的管理会话的方案,并给出软件实现的详细设计。
最后本文还介绍了评测服务器可用性的指标和评测方法,并对实施
队一HTTP的集群的可用性给出定量的评测。
关键词:高可用性集群Linux HTTP会话Cookie