架构目标
业务系统
架构设计原则
应用架构
![image](https://i-blog.csdnimg.cn/blog_migrate/79eb180e58863905b06ec61d29c58caa.png)
基础架构
数据库架构
![image](https://i-blog.csdnimg.cn/blog_migrate/42e547182a6bae2acfa2c179ed5efce4.png)
分布式数据库特性
• 支持MySQL,MariaDB,MongoDB等数据库
• 服务高可用,主库故障,从库自动切换
• 数据高可靠,定期快照备份,增量备份
• 数据自动拆分,一键无缝迁移扩容
• 针对特殊业务需求,定制优化特殊的数据库版本
Proxy 节点
原生MySQL协议,接入使用标准MySQL客户端
数据根据路由规则分库分表,对业务访问透明
单库容量满,可以快速在线无缝迁移,不影响业务
Proxy 数据拆分
Transfer在线无缝迁移
应用的真实需求
• 应用不关心
– sharding
– failover
– eventual consistency
• 应用需要事务
• 应用需要SQL
• 应用需要ACID
下一代分布式数据库
• 空间分为若干个range
• 使用RSM保障一致性
• 每个node由range组成
• 对外暴露一个完整的map
• 在map基础上实现分布式事务
分布式事务
• 至少支持snapshot isolation级别
• 使用2阶段提交协议+2阶段锁协议
• 数据多版本并存
• 每个key由时间戳+真实key组成
• 提交时间有可能会被推迟
一致性算法
容器技术 - 资源隔离
• clone/setns/unshare三个系统调用是容器资源隔离
技术的核心实现
• 内核新增nsproxy数据结构使不同进程可以拥有各自
不同的命名空间
容器技术 - 资源配额管理
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------