国外一般喜欢将分布式能力作为enterprise功能,即付费部分。国外的所有公司主导的开源都是有套路的,分为社区版和企业版,基础功能是社区版,高级功能是企业版,这样靠程序员个人使用开源来扩大用户群,然后大企业跟进,但是大企业的高级需求就需要付费,这样公司才有生意做。
中国的开源,这两年开始爆发,但是,这种开源更多的是大企业提高名声,或者某些个人发扬互联网精神,不走国外的(高级功能enterprise)套路,所以分布式能力,也直接开源出去,比如mycat算是个人项目社区化;腾讯tbase直接开源了(但是基本不会有人自建tbase,都是在腾讯云上用现成的);sharding-sphere是京东开源的这个和mycat类似;还有TiDB这个是目前国产的最好最彻底的分布式库之一盈利思路大概像redhat,我的产品都开源,如果你感觉自己弄麻烦,那么可以买我的人力服务支持,我靠这个赚钱。还有巨杉数据库,主打金融级,也开源,但是它的开源更新做样子,去github上看看就明白了,目前开源出的部分基本不满足你完全自己玩,想用,还是去购买企业服务吧。
其实国外也有分布式数据库的开源,最出名的就是 【小强DB】英文名cockroachdb,和TiDB类似,主要区别是小强主要支持pg语法,tidb主要支持MySQL语法。
国外在分布式中间价和原生库方面的开源不足,还有一点就是主流的云平台都没有分布式数据库服务,只有云数据库(基本意思是只有主从,没有分片),在aws上就找不到分布式数据库服务,可能国外用很少用到10亿以上的数据吧,能用到10亿以上,就是大公司了,不差钱,不像国内,随便一家公司就有10亿数据的需求。我做金融的,深有体会,国外一个金融系统,支持个2000-3000万数据就够了,国内上来就要求2亿。
1.自用且能力精力有限:建议使用mycat或sharding-sphere,
2.自用且能力精力充足:tidb 或 小强DB。。。
3.使用云平台:3.1 去购买腾讯云的tbase,3.2 其次购买tidb的云托管,3.3 阿里云目前(2020-06)没有成熟的HTAP库,后续应该会跟进。
(我说的所有的,都是关系型数据库,且不包括Hadoop系列)
原生分布式库,其实原理和中间件差不多,只是会对MySQL和pg本身做了修改,并对中间件和单库做了更强融合。。
中间件关注部分问题(比如主从负责不管,高可用不管,但是管读写分离),原生分布式库关注所有问题。