Tencent,数据库中间件

Tencent,数据库中间件

数据库中间件是什么?

我从早期的amoeba读写分离,druid,tddl分库分表,现在在使用公司自己的数据库组件!也来交流下数据库中间件!数据库中间件可以说是分布式,高并发系统架构中一定会用的!一般来说,一个复杂系统里面会有消息中间件(生产者和消费者之间通信的),数据库中间件(服务与数据库之间通信的),服务中间件(连接多个服务的)等等!何为中间件?就是连接两个系统并做特殊处理的组件!何为数据库中间件?业务应用系统通过数据库中间件对数据库进行操作(增删改查,分库分表,读写分离,性能监控等)的组件!中间件特点:就是对解耦的两个系统进行通信,互相解耦,中间件具备扩展性,可替换性!同时集中式的管理,监控!提供高可用性,大容量,高并发的解决方式!数据库中间件的分类:没有严格分类,根据功能可以分为:1,读写分离,分库分表这种跟业务息息相关的中间件!2,数据库之间进行同步和迁移的中间件3,增量消费数据的中间件!数据库中间件有哪些产品呢?分库分表组件:Cobar,mycat,tddl,DDB,Sharding-jdbc!增量消费组件:canal,Erosa!同步和迁移数据组件:Otter,DRC,DataX!伴随着大容量,高并发的分布式系统的变迁,中间件技术也日益发展,但是不同的中间件都是开发公司为了满足自身业务需要进行开发的组件,所以选择中间件的时候一定要酌情处理,必要时需要自己定向开发中间件!我们公司就用了自己开发的dmds数据库中间件!满足自己的业务需要!有需要了解数据库中间件怎么玩的朋友,可以私聊我,咱们一块交流,我知无不答!。

分库分表中,数据库中间件扮演了一个怎样的角色?

在数据库分库分表中,中间件就相当于一个adapter(适配器),开发中你不需要去关心分库分表是怎么实现,你只需要正常操作就行。像常见的分库分表中间件sharding-jdbc, Mycat, DBproxy,atlas,它们做的其实就是适配器的活。我上层业务不需要关心你怎么去分库分表,我只要配置好规则就行,在写CRUD的时候不用去指明具体的表明,就好像你操作的就是一个数据库表一样。

分库分表是是能解决表数据太大的问题,但是它也存在很多问题,其中很多问题是中间很难去解决的。就拿简单的分页来说,光是为了知道页数就需要查询很多张表,然后在进行分页。更复杂的有join操作,统计操作这类的,现在很多中间件都不支持多表关联。从上面可以看出,分库分表的中间件起到了适配的作用,还不能支持太复杂的操作,简而言之就是“一个功能待完善的适配器”。

为什么几乎所有的开源数据库中间件都是国内公司开源的?并且几乎都停止了更新?

国外一般喜欢将分布式能力作为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本身做了修改,并对中间件和单库做了更强融合。

  • 姓名:
  • 专业:
  • 层次:
  • 电话:
  • 微信:
  • 备注:
文章标题:Tencent,数据库中间件
本文地址:http://cng.55jiaoyu.com/show-752978.html
本文由合作方发布,不代表展全思梦立场,转载联系作者并注明出处:展全思梦

热门文档

推荐文档