什么是中间件( 五 )


名称
作用
Heartbeat
负责维护集群中各节点的信息及它们之间的心跳通信 。
Pacemaker
集群资源管理器 , 是核心组件 , 客户端通过 Pacemaker 来配置、管理并监控整个集群 。此组件的社区网站为 http://clusterlabs.org/ 。OpenStack 高可用性部署实例中一般都采用 Pacemaker 和 HAProxy 。
Resource Agent
为用于控制服务启停、监控服务状态的脚本集合 , 本地资源管理器(LRM)调用这些脚本来启动、停止、监控各种集群资源 。
Cluster Glue
包含一套函数库和工具 , 在集群栈中 , 除集群消息传输(由 Heartbeat 承担)、集群资源管理(由 Pacemaker 承担)和资源代理(由 Resource Agent 承担)功能外 , 其他功能都由 Cluster Glue 来完成 。它包含的两个主要部分是 LRM 和 Stonith , 前者是本地资源管理器 , 后者的任务是隔离故障机器 。
通过心跳信号(Heartbeat)检测故障 , 一台好的计算机会不断向其他计算机发送心跳信号 , 也会接收其他计算机发送过来的心跳信息 。当在规定的时间内没有收到对方计算机的心跳信号时 , 就启动应急预案 , 进一步确认故障并准备接管那台计算机的任务 。
例如 , 我们采用两台 LVS 计算机 , 并分别安装和配置 Linux-HA , 一台 LVS 计算机作为工作机 , 另一台作为备份机 , 两台 LVS 计算机互相监督对方的运行状态 。当工作机故障时 , 备份机接管负载均衡任务并报警 。相反 , 当备份机出故障时 , 只报警 , 提醒技术员维修备份机 。
两台LVS计算机同时出故障是比较糟糕的情况 , 不过这种情况发生的概率很小 , 除非机房断电或者遭到雷击 。对于一些非常关键的应用 , 可以增加参与负载均衡的服务器数量来提高可靠性 , 如民航飞机上采用 5 台服务器 。
4. 静态网站服务器
我们浏览一家公司的网站时 , 很可能就是跟那家公司服务器上的 Apache 程序打交道 , 网页浏览器与 Apache 成了标准的 C/S 模式 , 浏览器是客户端 , 而 Apache 是服务端 。Apache 首先把主页对应的文件 index.html 发给我们 , 我们看到主页内容后 , 点击主页上的某个链接 , 它又把该链接对应的文件发给我们 , 过程如图 3 所示 。
图 3访问静态网页的过程
配合 PHP 引擎 , Apache 也支持 PHP 动态网页 。过程为:
1)当 Apache 收到用户要浏览的 PHP 文件后 , 把这个 PHP 文件发给 PHP 执行引擎 。
2)PHP 执行引擎执行该 PHP 文件 , 产生一个临时的静态网页文件并发回给 Apache 。
3)最后 Apache 把这个临时的静态网页文件发给用户 。
采用 Perl、Python 和 Ruby 脚本语言编写的动态网页 , 其工作过程与 PHP 类似 。
Apache 是最流行的开源网站服务器 , 在世界排名前 100 万的网站中 , 有 60.6% 的网站采用 Apache;在排名前 1000 的大型网站中 , Apache 占到了 34.5% , 而 Ngnix 占到了 34.9% , 略胜于 Apache 。
5. 动态应用服务器
开源的动态应用服务器有 JBoss、Tomcat、Geronimo、JOnAS , 关于这些项目更详细的介绍 , 请参考相应的官方网站 。