永不丢失数据的技术

永不丢失数据的技术

我问这个问题有人建议我在这里问这个问题,这很有道理。

我对构建一个以不丢失数据为首要任务的系统所使用的技术很感兴趣。举一个简单的例子,一家金融机构如何确保在账户之间转账时,一旦从一个账户提取,就毫无疑问地存入另一个账户。我并不是在寻找数据库事务等特定技术,而是在寻找更大、更架构的概念,比如当服务器宕机、队列空间不足等情况下如何保存数据。

如果有人能向我推荐相关书籍或文章,我将不胜感激。

答案1

我们进行了大量的规划,并在每个步骤中都加入了冗余,以确保数据永远不会丢失。我们使用了冗余存储阵列,这样如果一个阵列发生故障,另一个阵列仍然有数据。我们为数据库使用了冗余服务器,这样如果服务器发生故障或重新启动,数据库可以在几秒钟内恢复。

除了本地冗余之外,整个数据中心还会被复制到另一个数据中心,这样如果整个数据中心丢失,所有数据仍然可用,以便公司及其客户可以继续运转。

对于诸如汇款之类的事务,都是通过数据库交易来处理的,如果涉及多台服务器,则通过分布式交易来处理。

至于磁盘空间等,都会设置警报,以便在队列填满之前很久就发出警报,以便人们可以找出队列填满的原因,然后如果填满是合法的,则添加更多空间,或者修复停止处理数据的因素。

相关内容