网络同步数据库多终端操作不冲突?特别是地理数据库可实 现网络同步操作协同编辑?
所谓地理数据库,我觉得提问的朋友指的是跨城或者跨 DC、跨可用区 域的实例部署。要同时在可用区域跨域、跨城上面同时对实例进行操作,但它有两个 实例、两个区域这种。这个叫做异地多活,这确实是非常有挑战的一件事。举个例 子来讲,通常不光是改数据还有可能修改表里面的 Schema。比如说我这个表,有 两个 DC 都同时它们在两个不同的城市。那么需要在两地都支持我的应用,首先能 够动态的增加和删除数据我们的数据;第二我甚至可以允许两边的应用同时修改我 的 Schema 做 online DDL 这种事情。如果不做任何的数据库系统或应用改造的话 那一定会出现数据冲突的问题。在阿里我们用这种情况用 DTS (data transmition service) 至少可以做到异地灾备,一边可以编解一边可以做到实时的数据同步,比一 般来说,先解析 binlog,然后把 binlog 解析过来把数据同步到另外里面的 DC 数据 中心里面去。但这还没有做到多活,没有做到另外一个数据中心同步过去的数据和数 据库实时修改然后实现双向同步。这是非常有挑战的一件事,光用 DTS 那种数据同 步工具是做不到的,同时还需要应用对它的整个所有的应用,不论是对它 DBA 也好 还是用户层的应用所有的这些跟数据库相关的操作改动一定要有一个统一的收口在这 里一层。在阿里内部叫 DMS (data management service) 也是我们云上的一个产 品,所有的东西所有的操作都是通过它去做收敛,比如 online DDL 这种操作,可以 确保自身这些变更能够做到同步而且两边没有冲突。这种方案加上 DTS,再加上数 据库内核本身,像今天分享时讲到的不管是云原生数据库、分布式数据库,它们现在 也是大量的使用分布式的数据同步协议像 Paxos、raft 那它至少可以做在一个可容 区里面三节点实时同步,再对跨区域实行在 DTS 上面 DMS 实行收口和所有的变更 , 以上为基本的逻辑和思路。
资源来源于《给ITer的技术前沿课》
https://developer.aliyun.com/topic/download?id=136
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。