集群友好型应用设计与网络设备概述
1. 应用集群设计模式
在集群环境中,应用的设计模式对其可用性和容错性至关重要。常见的设计模式有以下两种:
-主从模式:应用在两台服务器上以主从关系运行,只有主服务器为网络客户端提供服务。若主服务器出现故障,服务会转移到从服务器,从服务器随即开始提供服务。由于从服务器无需启动应用,因此能加快故障转移过程。
-双服务器提供服务模式:应用在两台服务器上均运行并为网络客户端提供服务,两台服务器访问相同的共享数据。部分客户端连接到集群中的一个应用服务器,其他客户端则连接到第二个应用服务器。若一台服务器发生故障,客户端需从故障服务器切换到另一台服务器。不过,由于服务器无需启动应用,停机时间得以最小化。
2. 故障转移时减少数据丢失的方法
尽管在应用故障转移期间无法完全避免数据丢失,但可采取以下措施将损失降至最低:
-减少内存数据:主机崩溃时,应用的内存数据(已写入的数据)会丢失。为减少损失,应尽量减少内存数据的存储。这样做的另一个好处是,节点在故障转移时能快速启动集群应用,因为无需从磁盘读取大量数据并初始化到内存中。但需权衡频繁写入磁盘对运行时性能的影响。对于只读数据,可放心存储在内存中,无需担心数据丢失。
-控制内存日志大小:大多数数据库允许将日志临时存储在内存中。当内存日志增长到一定大小时,会写入磁盘文件。增大内存日志大小可提高运行时性能,但也会增加因主机故障而丢失的已完成事务数据量。因此,应尽量减小内存日志大小,以减少主机故障导致的数据丢失。