我的要求:
1)必须能够在节点故障后继续运行2)节点故障后日志必须是可恢复的 – 没有数据丢失3)必须能够扩展4)必须是事务性的 – 当消息被logging时,我需要保证它被坚持到磁盘
这与我之前的一个问题类似,但我刚刚意识到交易function的重要性。 这是一个医疗应用程序; 我们不能丢失任何日志消息。
谢谢!!
使用rsyslog进行可靠的转发将使您开始。 rsyslog文档也有描述如何将数据写入数据库以及如何将写入扩展到数据库的页面。
现在这个设置并没有专门处理多个日志服务器之间的自动故障切换。 我个人并不担心,因为每个发送日志数据的客户端都会将数据排队等待日志服务器备份。 我有监视器,会通知我日志logging服务器正在closures。
如果您已经有一个具有适当故障转移和高可用性设置的数据库系统,则可以设置两个日志服务器,并使用心跳系统(可能是linux-ha )从实时日志logging服务器自动接pipeIP 。
从你上面描述的你想要的是连续计算。 在Windows平台上有两种软件可以提供你正在寻找的东西。 我不太熟悉任何事务日志应用程序。 通过下面的HA / FT解决scheme,你可以在任何地方使用。 (就像他们在Windows中运行一样)
Neverfail是一个HA解决scheme,可以保护您的应用程序免受任何数据丢失。 在服务器中断的情况下,两台服务器之间的故障转移是无意义的(不需要人为交互),并且取决于存储器中尚未写入活动服务器上的I / O的数据量,被动服务器将接pipe业务。 这将为您提供接近99.99%的正常运行时间。
马拉松与Neverfail类似,但是它具有额外的保护,这是组件保护。 通过FTfunction,如果服务器出现任何故障,如磁盘故障甚至networking故障,您的应用程序将继续运行。 因此没有数据丢失或业务中断。