开源的分布式数据库中间件ShardingSphere与Vitess

一、ShardingSphere

ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈,2016年初Sharding-JDBC被开源,这个产品是当当的,加入了Apache 后改名为 ShardingSphere 。ShardingSphere 由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar(计划中)这3款相互独立的产品组成。 他们均提供标准化的数据分片(分库分表)、分布式事务和数据库治理等功能,可适用于如Java同构、异构语言、容器、云原生等各种多样化的应用场景。

官方文档:https://shardingsphere.apache.org/document/current/cn/overview/

 

二、Vitess

Vitess是Youtube出品,用于部署、扩展和管理大型MySQL实例集群的数据库解决方案。它实现了自动分片存储MySQL数据表,将单个SQL查询改写为分布式发送到多个MySQL Server上,支持行缓存(比MySQL本身缓存效率高),支持复制容错。

官方文档:https://vitess.io/zh/

 

 

更多介绍:https://zhuanlan.zhihu.com/p/50608438

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL分布式数据库搭建需要考虑以下几个方面: 1. 数据分片:将数据按照一定的规则进行分割,以便于分布式系统中的各个节点处理。 2. 数据同步:分布式系统中需要保证数据的一致性,因此需要对分片后的数据进行同步。 3. 负载均衡:分布式系统中需要考虑负载均衡,以便于避免某些节点过度负载。 下面介绍一种常见的MySQL分布式数据库搭建方案: 1. 数据分片 将数据按照一定的规则进行分割,例如按照用户ID进行哈希分片,或者按照时间进行范围分片等。可以选择使用MyCat、Vitess等第三方中间件实现数据分片,也可以手动实现分片算法。 2. 数据同步 在分片后,需要确保各个分片的数据一致性,可以采用以下两种同步方式: - 主从同步:将一个分片设为主分片,其他分片设为从分片,主分片负责写入数据,从分片负责读取数据,主分片的数据变化会同步到从分片上。可以使用MySQL自带的复制功能来实现主从同步。 - 全局同步:所有分片都可以写入数据,但是需要确保数据的一致性。可以使用类似于Paxos协议的分布式一致性算法来实现全局同步。 3. 负载均衡 在分布式系统中,需要考虑负载均衡,避免某些节点过度负载。可以采用以下两种负载均衡方式: - 客户端负载均衡:客户端通过负载均衡器选择一个可用的分片节点进行访问。 - 服务端负载均衡:在分布式系统中,可以选取一些节点作为代理节点,客户端请求先发送到代理节点,代理节点再将请求路由到相应的分片节点上。 总的来说,MySQL分布式数据库搭建需要考虑数据分片、数据同步和负载均衡三方面的问题,可以选择使用第三方中间件或手动实现。同时,也需要注意分布式系统的复杂性和一致性问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值