美文网首页
数据亲和架构--失败恢复

数据亲和架构--失败恢复

作者: romandion | 来源:发表于2018-10-27 09:24 被阅读0次

数据亲和架构在设计上,要确保数据和程序的亲和性,在程序需要的时候,就可以自动得到所需要的数据。基于数据同步技术,会在多个地方保存数据,在程序失效的场景下,并不会引起数据丢失。失败恢复在数据亲和架构下,不会成为一个关键问题。因此,我们这里要讨论的,不是如何正确失败恢复,而是如何在正确失败恢复情况,做到最快恢复。

        从数据规模来看,规模越大的,恢复难度越高。就在不久前,一个顺丰DBA顺手删除了数据库,导致顺丰590分钟下线。不说复杂,就一个简单1G数据文件,要从一台机器拷贝到另外一台机器,都要好几秒,如果在生产环境中,还可以冲击到网络环境,导致其他网络通讯阻塞。在应对这类需要大规模数据迁移的场景,就是要提早将该数据分布到多台机器上,即使某些备份会滞后,真到要用的时候,也只要增量恢复这个滞后部分的数据。

        针对大规模数据,还有两个策略可以予以完善。一个是冷、温、热三类数据分层,优先恢复热点数据,访问时恢复温数据,冷数据暂时不管。这个策略光技术手段还不行,需要业务逻辑介入。因为冷数据不代表在业务上不重要,如果业务需要得不到满足,极可能导致这个策略在应用上失效,而被遗弃。另外一个策略,是将数据按关联度分割成多个独立实体,最简单的就是每个表都可以直接视为一个独立实体。再将这些独立实体分散在多个机器上,于是一个大规模的数据,就被拆成一个小规模数据集了。大规模数据恢复的技术难度就不复存在。

        从数据延迟来看,实时数据要尽量保持在内存中,而程序尽量在原地重启恢复。在机器或者网络失效的情况下,显然不能原地复活,如何在远程恢复也是必须考虑的问题。和大规模数据相同的是,依然是基于同步技术,不同的是,实时数据是在内存中进行同步。

        数据亲和架构,在失败恢复策略上,和其他架构有一个很大的差别。比如K8S是以程序为核心,在一个机器失败时,它会将程序迁移到其他机器上重启,之后再重新加载数据。程序迁移很快,但是数据恢复就不好说了,还要考考虑业务情况。而数据亲和架构要保证数据和程序之间的绑定,所以他会先准备好数据,而将程序迁往他的数据所在。是先程序再数据,还是先数据再程序,这是有本质上的区别。

相关文章

  • 数据亲和架构--失败恢复

    数据亲和架构在设计上,要确保数据和程序的亲和性,在程序需要的时候,就可以自动得到所需要的数据。基于数据同步技术,会...

  • 数据亲和架构--数据同步

    数据亲和架构核心要解决数据和程序的绑定问题,那么数据在进程间同步就尤为重要。因为性能的关系,增量同步是首选,全量...

  • 数据亲和架构--缘起

    数据亲和架构并没有否定其他架构,尤其是微服务架构的合理性,而是从另外一个视角来重新审视整个架构,做出补充。让数据...

  • 数据亲和架构--子集筛选

    之前谈到数据同步,但我们知道,业务服务使用的数据和存储的数据是不完全一样。服务用到的数据是存储数据集合或者混合衍生...

  • 数据亲和架构--领域语言

    在IT届,一谈起编程语言之间的优劣,可以掀起一场世界大战。即使已经封神的Torvalds也不能免俗,对C++数度开...

  • 数据亲和架构--事件矩阵

    事件模型对于提高系统性能起到关键的作用,特别是网络IO模型,如EPOLL和IOCP已经深入人心。还有...

  • 数据亲和架构--流式计算

    关于计算有很多名词,比如实时计算、分布式计算,以及这里提到流式计算等等。他们是从计算形势的不同维度来描述,不必争议...

  • 数据亲和架构--核心目标

    数据亲和架构的核心目标,是为了解决微服务中的业务逻辑和数据绑定问题。使得业务逻辑在使用数据时,无需更多关注数据的...

  • 数据亲和架构--一致性

    数据亲和架构强调数据和应用的绑定,这意味着,同一份数据是分布在多个服务的内存中,因此系统是分布式架构。关于分布式系...

  • Oracle完全恢复和不完全恢复的区别

    Oracle恢复(完全恢复和不完全恢复) 完全恢复和不完全恢复区别: 完全恢复:但数据文件出现介质失败时,使用os...

网友评论

      本文标题:数据亲和架构--失败恢复

      本文链接:https://www.haomeiwen.com/subject/ykwrtqtx.html