把复杂的问题简单化,是大师的水平,是对技术的真正理解,所谓简单是能切中要害,深入浅出地表达,所以提炼产品的技术亮点,是与客户交流的基础功课。但并非高深的技术一定是复杂的,任何产品都有它“独特”的技术,关键是你条理地表达。我们常常遇到这样的情况,我们销售的产品使用起来非常“傻瓜”,好象没有什么可说的,客户认为太简单而没有技术含量,没有技术,靠什么竞争,比价格是很残酷的。
核心的理解就是:每个地点的Seafile集群只需要和本地的数据库节点、对象存储节点通信就可以了,但是不同地点之间的数据是可以通过mariaDB集群和对象存储的自动数据同步来实现。
Seafile通过异地的分布式部署,为中国、美国两地的用户提供网盘服务,同时保证两地用户访问到的数据是一致的。由于Seafile的数据存储在数据库和对象存储中,所以我们需要保证两地数据库和对象存储数据的一致性。
如下图所示,数据库数据的一致性是通过MariaDB集群的方式来实现的,MariaDB集群是一个多主的数据库同步方案,数据的读写可以在任意一个数据库节点上进行,其它节点会自动对数据读写进行同步,以保证所有节点上数据的一致性。MariaDB集群至少需要三个数据库节点,下图中按照最小的三节点来部署,可以在中国部署两个数据库节点,在美国部署一个数据库节点。
对象存储数据的一致性,通过Xsky内部技术来实现Xsky对象存储节点间数据